関数 403dd0

; recv で読み取ったデータをスタティックバッファから class のバッファに追加コピーする
; ecx コネクションクラス
; esp + 0x4 コピー元ポインタ
; esp + 0x8 コピー元長さ
00403dd0 53 push ebx
00403dd1 55 push ebp
00403dd2 8b6c2410 mov ebp,[esp+0x10] ; 長さ
00403dd6 8bd9 mov ebx,ecx ; class
00403dd8 8b433c mov eax,[ebx+0x3c] ; 元々読んでいた長さ
00403ddb 8b4b38 mov ecx,[ebx+0x38] ; バッファの限界
00403dde 03c5 add eax,ebp
00403de0 3bc1 cmp eax,ecx
00403de2 56 push esi
00403de3 57 push edi
00403de4 7c18 jl image00400000+0x3dfe (00403dfe) ; バッファ足りてる
00403de6 8b4b34 mov ecx,[ebx+0x34] ; バッファのポインタ
00403de9 0500000200 add eax,0x20000
00403dee 50 push eax
00403def 51 push ecx
00403df0 894338 mov [ebx+0x38],eax
00403df3 e841780400 call image00400000+0x4b639 (0044b639) ; realloc か何か
00403df8 83c408 add esp,0x8
00403dfb 894334 mov [ebx+0x34],eax
; バッファ足りてる
00403dfe 8b4334 mov eax,[ebx+0x34]
00403e01 85c0 test eax,eax
00403e03 742c jz image00400000+0x3e31 (00403e31)
00403e05 817b3800004000 cmp dword ptr [ebx+0x38],0x400000
00403e0c 7f23 jg image00400000+0x3e31 (00403e31)
00403e0e 8b7b3c mov edi,[ebx+0x3c] ; memcpy( eax( ポインタ ) + [ebx + 0x3c]( 既に読んでいる長さ ), [第一引数( バッファ )], 第二引数( 長さ ));
00403e11 8b742414 mov esi,[esp+0x14] ; ...
00403e15 8bcd mov ecx,ebp ; ...
00403e17 8bd1 mov edx,ecx ; ...
00403e19 c1e902 shr ecx,0x2 ; ...
00403e1c 03f8 add edi,eax ; ...
00403e1e f3a5 rep movsd ; ...
00403e20 8bca mov ecx,edx ; ...
00403e22 83e103 and ecx,0x3 ; ...
00403e25 f3a4 rep movsb ; ...
00403e27 016b3c add [ebx+0x3c],ebp
00403e2a 5f pop edi
00403e2b 5e pop esi
00403e2c 5d pop ebp
00403e2d 5b pop ebx
00403e2e c20800 ret 0x8
; メモリ不足エラー or 送って来たデータが大き過ぎエラー
00403e31 51 push ecx
00403e32 8bcc mov ecx,esp
00403e34 8964241c mov [esp+0x1c],esp
00403e38 684c9c4600 push 0x469c4c
00403e3d e84ee1ffff call image00400000+0x1f90 (00401f90)
00403e42 e8e9080300 call image00400000+0x34730 (00434730)
00403e47 83c404 add esp,0x4
00403e4a 6a01 push 0x1
00403e4c 8bcb mov ecx,ebx
00403e4e e80dfeffff call image00400000+0x3c60 (00403c60)
00403e53 5f pop edi
00403e54 5e pop esi
00403e55 5d pop ebp
00403e56 c6838d00000000 mov byte ptr [ebx+0x8d],0x0
00403e5d 5b pop ebx
00403e5e c20800 ret 0x8