関数 403c60

; CConnection::Free
; @1 send する 1 / しない 0 のフラグ
00403c60 8a442404 mov al,[esp+0x4]
00403c64 53 push ebx
00403c65 33db xor ebx,ebx
00403c67 3ac3 cmp al,bl
00403c69 56 push esi
00403c6a 8bf1 mov esi,ecx
00403c6c 7405 jz image00400000+0x3c73 (00403c73) ; @1 == 0 ->
00403c6e e8ddfeffff call image00400000+0x3b50 (00403b50) ; send する
; @1 == 0
00403c73 8b869c000000 mov eax,[esi+0x9c] ; eax <- CConnection.9c( socket )
00403c79 3bc3 cmp eax,ebx
00403c7b 57 push edi
00403c7c 8b3d08964600 mov edi,[image00400000+0x69608 (00469608)] ; closesocket
00403c82 7452 jz image00400000+0x3cd6 (00403cd6)
00403c84 389e8e000000 cmp [esi+0x8e],bl
00403c8a 744a jz image00400000+0x3cd6 (00403cd6)
00403c8c 6a01 push 0x1 ; SD_SEND
00403c8e 50 push eax
00403c8f ff15fc954600 call dword ptr [image00400000+0x695fc (004695fc)] ; shutdown
00403c95 8b869c000000 mov eax,[esi+0x9c]
00403c9b 50 push eax
00403c9c ffd7 call edi ; closesocket
00403c9e ff05f884ec00 inc dword ptr [image00400000+0xac84f8 (00ec84f8)] ; 全く参照されない
00403ca4 389e8f000000 cmp [esi+0x8f],bl
00403caa 899e9c000000 mov [esi+0x9c],ebx ; CConnection.9c( socket ) <- 0
00403cb0 889e8e000000 mov [esi+0x8e],bl ; CConnection.8e <- 0
00403cb6 c74624100e0000 mov dword ptr [esi+0x24],0xe10 ; CConnection.24 <- 3600
00403cbd 7417 jz image00400000+0x3cd6 (00403cd6) ; CConnection.8f == 0
00403cbf 389e96000000 cmp [esi+0x96],bl
00403cc5 750f jnz image00400000+0x3cd6 (00403cd6) ; CConnection.96 != 0
00403cc7 389e95000000 cmp [esi+0x95],bl
00403ccd 7507 jnz image00400000+0x3cd6 (00403cd6) ; CConnection.95 != 0
00403ccf c74624a08c0000 mov dword ptr [esi+0x24],0x8ca0 ; CConnection.24 <- 36000
;
00403cd6 8b869c000000 mov eax,[esi+0x9c] ; eax <- CConnection.9c( socket )
00403cdc 3bc3 cmp eax,ebx
00403cde 740f jz image00400000+0x3cef (00403cef) ; CConnection.9c( socket ) == 0 ->
00403ce0 50 push eax
00403ce1 ffd7 call edi ; closesocket
00403ce3 899e9c000000 mov [esi+0x9c],ebx ; CConnection.9c( socket ) <- 0
00403ce9 ff05f884ec00 inc dword ptr [image00400000+0xac84f8 (00ec84f8)] ; 全く参照されない
;
00403cef 8b4e50 mov ecx,[esi+0x50] ; ecx <- CConnection.50
00403cf2 3bcb cmp ecx,ebx
00403cf4 5f pop edi
00403cf5 7c1b jl image00400000+0x3d12 (00403d12) ; CConnection.50 < 0
00403cf7 8b150485ec00 mov edx,[image00400000+0xac8504 (00ec8504)]
00403cfd 69c928090000 imul ecx,ecx,0x928 ; ecx *= 2344
00403d03 8b82a0030900 mov eax,[edx+0x903a0]
00403d09 53 push ebx
00403d0a 53 push ebx
00403d0b 03c8 add ecx,eax
00403d0d e8aed30300 call image00400000+0x410c0 (004410c0)
00403d12 8b4640 mov eax,[esi+0x40] ; eax <- CConnection.40( send buffer )
00403d15 3bc3 cmp eax,ebx
00403d17 899e9c000000 mov [esi+0x9c],ebx ; CConnection.9c( socket ) <- 0
00403d1d 895e48 mov [esi+0x48],ebx ; CConnection.48( send length ) <- 0
00403d20 895e44 mov [esi+0x44],ebx ; CConnection.44 <- 0
00403d23 7409 jz image00400000+0x3d2e (00403d2e)
00403d25 50 push eax
00403d26 e8656c0400 call image00400000+0x4a990 (0044a990) ; free?
00403d2b 83c404 add esp,0x4
;
00403d2e 8b4634 mov eax,[esi+0x34]
00403d31 3bc3 cmp eax,ebx
00403d33 895e40 mov [esi+0x40],ebx ; CConnection.40( send buffer ) <- 0
00403d36 895e3c mov [esi+0x3c],ebx ; CConnection.3c( recved length ) <- 0
00403d39 895e38 mov [esi+0x38],ebx ; CConnection.38( recv buffer length ) <- 0
00403d3c 7409 jz image00400000+0x3d47 (00403d47)
00403d3e 50 push eax
00403d3f e84c6c0400 call image00400000+0x4a990 (0044a990) ; free?
00403d44 83c404 add esp,0x4
;
00403d47 8bce mov ecx,esi
00403d49 895e34 mov [esi+0x34],ebx ; CConnection.34( recv buffer ) <- 0
00403d4c e8bfecffff call image00400000+0x2a10 (00402a10)
00403d51 5e pop esi
00403d52 5b pop ebx
00403d53 c20400 ret 0x4