Function at 0x406620
Capabilities:
Check for time delay via gettickcount
Encode data using xor
Get file size
Get socket status
Read .ini file
Read and send data from client to server
Read file on windows
Send data
Send data on socket

Disassembly:
mov eax, 0x933c
call fcn.004154c0
push ebx
mov ebx, ecx
xor edx, edx
push ebp
mov eax, dword [ebx + 0x10]
push esi
cmp eax, edx
push edi
je case.0x406663.109
mov esi, dword [esp + 0x9358]
xor eax, eax
mov ax, word [esi + 4]
lea edi, [esi + 8]
add eax, 0xffffff9b
mov ebp, edi
cmp eax, 0x64
ja case.0x406663.123
xor ecx, ecx
mov cl, byte [eax + 0x407ebc]
jmp dword [ecx*4 + 0x407e60]
cmp word [esi + 6], 9
jne 0x40667b
xor eax, eax
mov al, byte [ebp]
inc ebp
mov esi, eax
jmp 0x406681
mov esi, dword [ebp]
add ebp, 4
cmp esi, dword [ebx + 4]
jae case.0x406663.109
mov ecx, dword [ebx + 8]
cmp dword [ecx + esi*4], edx
je case.0x406663.109
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + esi*4]
cmp dword [ecx + 0xa4], edx
jne 0x4066a9
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebx + 8]
push ebp
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx]
call dword [edx + 0xc]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
cmp word [esi + 6], 9
jne 0x4066d2
xor eax, eax
mov al, byte [ebp]
mov ebp, eax
jmp 0x4066d5
mov ebp, dword [ebp]
cmp ebp, dword [ebx + 4]
jae case.0x406663.109
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + ebp*4]
cmp ecx, edx
je case.0x406663.109
mov edx, dword [ecx]
call dword [edx + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov ecx, 5
lea edi, [esp + 0x134c]
add ebp, 0xc
rep movsd dword es:[edi], dword [esi]
mov cl, byte [ebp]
xor esi, esi
test cl, cl
je 0x40672a
mov eax, ebp
xor cl, 0xe3
inc esi
mov byte [eax], cl
mov cl, byte [esi + ebp]
lea eax, [esi + ebp]
test cl, cl
jne 0x40671a
mov al, byte [esi + ebp + 1]
lea ecx, [esi + ebp + 1]
test al, al
je 0x406742
xor al, 0x3e
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x406736
lea eax, [esp + 0x1368]
lea ecx, [esp + 0x1364]
push eax
push ecx
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1368]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
mov word [esp + 0x135e], 0xc
lea eax, [ecx + ebp + 1]
mov ecx, ebx
push eax
push ebp
call fcn.00407f30
test eax, eax
mov ax, word [esp + 0x1352]
je 0x4067bc
mov ecx, dword [esp + 0x1364]
add ax, 4
add ax, 4
lea edx, [ecx*4]
add ax, dx
mov word [esp + 0x1352], ax
mov byte [esp + ecx*4 + 0x1368], 0x4f
inc word [esp + 0x1352]
jmp 0x4067e6
add ax, 4
xor ecx, ecx
add ax, 4
mov dword [esp + 0x1360], ecx
inc ax
mov dword [esp + 0x1364], ecx
mov byte [esp + 0x1368], 0x4f
mov word [esp + 0x1352], ax
mov edi, dword [esp + 0x1352]
mov ebp, dword [esp + 0x9354]
mov eax, 1
xor esi, esi
mov dword [esp + 0xb4], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
lea ecx, [esp + 0xb4]
push eax
push esi
push ecx
and edi, 0xffff
push esi
push esi
add edi, 8
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x2c], esi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
lea edx, [esp + 0x1350]
push edi
push edx
push ebp
mov dword [esp + 0x20], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
add esi, eax
cmp esi, edi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebx
test eax, eax
je 0x4068bd
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebx
test eax, eax
jne 0x406894
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, edi
push 0
sub ecx, esi
lea edx, [esp + esi + 0x1350]
push ecx
push edx
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x406862
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov ecx, dword [esp + 0x935c]
lea edi, [esp + 0x4c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x4237c8]
mov edi, 1
push ecx
push edi
push str.Protocol
push 0x4202f4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [esp + 0x52]
mov ebx, dword [esp + 0x9354]
and edx, 0xffff
mov dword [esp + 0xb4], edi
mov dword [esp + 0x14], edi
xor edi, edi
mov byte [esp + edx + 0x54], al
inc word [esp + 0x52]
mov esi, dword [esp + 0x52]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xb8]
push edi
push ecx
and esi, 0xffff
push edi
push edi
add esi, 8
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x2c], edi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
lea edx, [esp + 0x50]
push esi
push edx
push ebx
mov dword [esp + 0x20], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
add edi, eax
cmp edi, esi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
je 0x406a02
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
jne 0x4069d9
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, esi
push 0
sub ecx, edi
lea edx, [esp + edi + 0x50]
push ecx
push edx
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x4069a7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov ecx, dword [esp + 0x935c]
lea edi, [esp + 0x1b8]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp word [esp + 0x1be], 9
mov eax, dword [esp + 0x1c0]
jne 0x406a62
and eax, 0xff
cmp eax, dword [ebx + 4]
jae 0x406a94
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
cmp ecx, edx
je 0x406a94
mov eax, dword [esp + 0x1be]
mov edx, dword [ecx]
and eax, 0xffff
lea eax, [esp + eax + 0x1c0]
push eax
call dword [edx + 0x30]
add word [esp + 0x1be], ax
jmp 0x406ac7
mov ecx, dword [esp + 0x1be]
and ecx, 0xffff
mov byte [esp + ecx + 0x1c0], 0
mov edx, dword [esp + 0x1be]
and edx, 0xffff
mov byte [esp + edx + 0x1c1], 0
add word [esp + 0x1be], 2
mov edi, dword [esp + 0x1be]
mov ebp, dword [esp + 0x9354]
mov eax, 1
xor esi, esi
mov dword [esp + 0xb4], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
lea ecx, [esp + 0xb4]
push eax
push esi
push ecx
and edi, 0xffff
push esi
push esi
add edi, 8
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x2c], esi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
lea edx, [esp + 0x1bc]
push edi
push edx
push ebp
mov dword [esp + 0x20], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
add esi, eax
cmp esi, edi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebx
test eax, eax
je 0x406b9e
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebx
test eax, eax
jne 0x406b75
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, edi
push 0
sub ecx, esi
lea edx, [esp + esi + 0x1bc]
push ecx
push edx
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x406b43
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
cmp word [esi + 6], 9
jne 0x406be1
xor eax, eax
mov al, byte [ebp]
inc ebp
mov dword [esp + 0x10], eax
jmp 0x406beb
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x10], eax
cmp eax, dword [ebx + 4]
jae case.0x406663.109
mov ecx, dword [ebx + 8]
cmp dword [ecx + eax*4], edx
je case.0x406663.109
mov edx, dword [esp + 0x9350]
mov ecx, dword [ebx + 0x14]
push edx
call fcn.0040b2b0
mov word [esi + 6], 8
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
mov edx, dword [ebx + 8]
mov ebp, dword [esp + 0x9354]
push eax
mov eax, dword [esp + 0x14]
push ecx
push ebp
mov ecx, dword [edx + eax*4]
call fcn.004098f0
test eax, eax
mov dword [esp + 0x18], 0
mov dword [esp + 0xb8], ebp
jge 0x406d3f
or ecx, 0xffffffff
mov eax, 1
mov dword [edi], ecx
lea edx, [esp + 0x14]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x14], eax
mov dword [edi + 4], ecx
push edx
lea eax, [esp + 0xb8]
xor edi, edi
mov di, word [esi + 6]
push 0
push eax
push 0
push 0
add edi, 8
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je 0x406d23
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ebx
push edi
push esi
push ebp
mov dword [esp + 0x20], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x406d23
add ebx, eax
cmp ebx, edi
jge 0x406d23
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
cmp eax, 0x1388
jae 0x406d23
push 1
push 0
push 0
lea ecx, [esp + 0x30]
push 0
push ecx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x406d04
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea ecx, [esp + 0x30]
push 0
push ecx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x406cd7
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, edi
push 0
sub edx, ebx
lea eax, [ebx + esi]
push edx
push eax
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x406ca9
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebp
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
lea ecx, [esp + 0x14]
lea edx, [esp + 0xb4]
push ecx
mov dword [edi], 0
xor ebx, ebx
push 0
mov bx, word [esi + 6]
mov dword [esi + 0xc], eax
push edx
mov eax, 1
push 0
push 0
mov dword [edi], ebp
add ebx, 8
mov dword [esp + 0xc8], eax
mov dword [esp + 0x28], eax
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
push ebx
push esi
push ebp
mov dword [esp + 0x20], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
add edi, eax
cmp edi, ebx
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x406e06
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x406dd9
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, ebx
push 0
sub ecx, edi
lea edx, [edi + esi]
push ecx
push edx
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x406da3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
cmp word [esi + 6], 9
jne 0x406e47
xor eax, eax
mov al, byte [ebp]
inc ebp
mov esi, eax
jmp 0x406e4d
mov esi, dword [ebp]
add ebp, 4
cmp esi, dword [ebx + 4]
jae case.0x406663.109
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + esi*4]
cmp ecx, edx
je case.0x406663.109
mov eax, dword [esp + 0x9354]
mov edx, dword [ecx]
push ebp
push eax
call dword [edx + 4]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + esi*4]
mov eax, dword [ecx + 0xa4]
test eax, eax
jne 0x406e94
mov edx, dword [ecx]
call dword [edx + 4]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov eax, dword [ecx]
call dword [eax + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
cmp word [esi + 6], 9
jne 0x406eb5
xor eax, eax
mov al, byte [ebp]
inc ebp
jmp 0x406ebb
mov eax, dword [ebp]
add ebp, 4
cmp eax, dword [ebx + 4]
jae case.0x406663.109
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + eax*4]
cmp ecx, edx
je case.0x406663.109
mov edx, dword [ecx]
push ebp
call dword [edx + 8]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov si, word [esi + 6]
cmp si, 0xd
jne 0x406ef9
xor eax, eax
mov al, byte [ebp]
add ebp, 9
jmp 0x406f08
mov eax, dword [ebp]
add ebp, 0xc
cmp si, 0x14
jne 0x406f08
mov edx, dword [ebp + 4]
cmp eax, dword [ebx + 4]
jae case.0x406663.109
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je case.0x406663.109
mov eax, dword [ecx]
push edx
mov edx, dword [ebp]
push edx
call dword [eax + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
cmp word [esi + 6], 3
jne 0x406f45
xor eax, eax
mov al, byte [ebp]
inc ebp
jmp 0x406f4b
mov eax, dword [ebp]
add ebp, 4
cmp eax, dword [ebx + 4]
jae case.0x406663.109
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
cmp ecx, edx
je case.0x406663.109
mov edx, dword [ecx]
xor eax, eax
mov al, byte [ebp + 1]
push eax
xor eax, eax
mov al, byte [ebp]
push eax
call dword [edx + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov ecx, dword [esp + 0x935c]
lea edi, [esp + 0x4c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp word [esp + 0x52], 9
mov eax, dword [esp + 0x54]
jne 0x406faa
and eax, 0xff
cmp eax, dword [ebx + 4]
jae 0x406fe2
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
cmp ecx, edx
je 0x406fe2
mov eax, dword [esp + 0x52]
mov edx, dword [ecx]
and eax, 0xffff
lea eax, [esp + eax + 0x54]
push eax
call dword [edx + 0x18]
test eax, eax
jne 0x406ff1
mov ecx, dword [esp + 0x52]
and ecx, 0xffff
lea edx, [esp + ecx + 0x54]
mov dword [edx], eax
jmp 0x406ff1
mov eax, dword [esp + 0x52]
and eax, 0xffff
lea ecx, [esp + eax + 0x54]
mov dword [ecx], edx
add word [esp + 0x52], 4
mov edi, dword [esp + 0x52]
mov ebx, dword [esp + 0x9354]
mov eax, 1
lea edx, [esp + 0x14]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x14], eax
xor esi, esi
push edx
lea eax, [esp + 0xb8]
push esi
push eax
and edi, 0xffff
push esi
push esi
add edi, 8
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x2c], esi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
lea ecx, [esp + 0x50]
push edi
push ecx
push ebx
mov dword [esp + 0x20], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
add esi, eax
cmp esi, edi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea edx, [esp + 0x30]
push 0
push edx
call ebp
test eax, eax
je 0x4070c8
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea edx, [esp + 0x30]
push 0
push edx
call ebp
test eax, eax
jne 0x40709f
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, edi
push 0
sub eax, esi
lea ecx, [esp + esi + 0x50]
push eax
push ecx
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x40706d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov eax, dword [ebx + 4]
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*4 + 0x18]
push eax
call fcn.004150af
mov ecx, dword [esp + 0x9360]
mov esi, ebp
add ecx, 0xfffffff8
lea edi, [eax + 8]
mov edx, ecx
add esp, 4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x10], eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x935c]
mov dword [eax], 0x82020476
mov word [eax + 4], 0x7f
mov ecx, ebx
lea eax, [eax + esi + 4]
push eax
call fcn.00408180
mov ecx, dword [esp + 0x10]
mov edx, eax
shl edx, 4
add edx, eax
mov dword [ecx + esi], eax
mov ebx, dword [esp + 0x9354]
mov dword [esp + 0x20], 0
lea eax, [esi + edx*4 - 4]
mov dword [esp + 0xb8], ebx
mov word [ecx + 6], ax
and eax, 0xffff
add eax, 8
lea ecx, [esp + 0xb4]
mov edi, eax
mov eax, 1
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push 0
push ecx
push 0
push 0
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je 0x407251
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x10]
push esi
push edi
push edx
push ebx
mov dword [esp + 0x24], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x407251
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
add esi, eax
cmp esi, edi
jge 0x407251
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae 0x407251
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
je 0x40722e
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
jne 0x407205
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [esp + 0x10]
mov ecx, edi
sub ecx, esi
push 0
lea eax, [esi + edx]
push ecx
push eax
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x4071db
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00415417
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov eax, dword [ebx + 4]
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [edx*4 + 0xc]
push eax
call fcn.004150af
mov esi, eax
add esp, 4
lea ecx, [esi + 0xc]
mov dword [esi], 0x82020476
push ecx
mov ecx, ebx
mov word [esi + 4], 0x83
call fcn.00408180
mov edx, eax
mov dword [esi + 8], eax
shl edx, 4
add edx, eax
mov ebp, dword [esp + 0x9354]
lea ecx, [esp + 0xb4]
mov dword [esp + 0xb8], ebp
lea eax, [edx*4 + 4]
mov dword [esp + 0x20], 0
mov word [esi + 6], ax
and eax, 0xffff
add eax, 8
mov ebx, eax
mov eax, 1
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push 0
push ecx
push 0
push 0
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je 0x407399
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
push ebx
push esi
push ebp
mov dword [esp + 0x24], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x407399
add edi, eax
cmp edi, ebx
jge 0x407399
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae 0x407399
push 1
push 0
push 0
lea edx, [esp + 0x30]
push 0
push edx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x40737a
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea edx, [esp + 0x30]
push 0
push edx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x40734d
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, ebx
push 0
sub eax, edi
lea ecx, [edi + esi]
push eax
push ecx
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x40731f
push esi
call fcn.00415417
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov eax, dword [ebp + 0x104]
mov dword [esp + 0x2c8], edx
lea edx, [esp + 0x1c0]
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x1b8], 0x82020476
mov word [esp + 0x1bc], 0x70
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4073e3
push 0
push 0x80
push 3
push 0
push 3
push 0xc0000000
push ebp
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x4074a6
mov ecx, dword [ebp + 0x104]
push 0
push 0
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
lea edx, [esp + 0x10]
mov esi, 0x1000
push 0
push edx
lea eax, [esp + 0x2d8]
push esi
push eax
push edi
lea ebp, [esp + 0x2e4]
mov dword [esp + 0x2dc], 0
call ebx
test eax, eax
je 0x407487
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c8]
add edx, eax
cmp esi, eax
mov dword [esp + 0x2c8], edx
je 0x40748d
test eax, eax
je 0x40748d
lea ecx, [esp + 0x10]
sub esi, eax
push 0
add ebp, eax
push ecx
push esi
push ebp
push edi
call ebx
test eax, eax
jne 0x407457
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push edi
mov dword [esp + 0x2d0], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4074b1
mov dword [esp + 0x2cc], 0
mov edx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0x9354]
mov eax, 1
add edx, 0x110
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
xor esi, esi
mov word [esp + 0x1be], dx
mov edi, dword [esp + 0x1be]
push eax
lea ecx, [esp + 0xb8]
push esi
push ecx
and edi, 0xffff
push esi
push esi
add edi, 8
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x34], esi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
lea edx, [esp + 0x1bc]
push edi
push edx
push ebx
mov dword [esp + 0x24], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
add esi, eax
cmp esi, edi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
je 0x40759d
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
jne 0x407574
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, edi
push 0
sub ecx, esi
lea edx, [esp + esi + 0x1bc]
push ecx
push edx
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x407542
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov eax, dword [ebx + 4]
add eax, 0x14
push eax
call fcn.004150af
mov ecx, dword [esp + 0x9360]
mov ebp, eax
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, word [ebx + 4]
lea ecx, [ebp + 0x14]
add ax, 0xc
push ecx
mov ecx, ebx
mov word [ebp + 6], ax
call fcn.004085e0
mov ebx, dword [esp + 0x9354]
mov dword [ebp + 0x10], eax
mov eax, 1
lea edx, [esp + 0x1c]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
push edx
lea eax, [esp + 0xb8]
xor edi, edi
push 0
mov di, word [ebp + 6]
push eax
push 0
push 0
add edi, 8
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x34], 0
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
push edi
push ebp
push ebx
mov dword [esp + 0x24], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
add esi, eax
cmp esi, edi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea ecx, [esp + 0x30]
push 0
push ecx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x4076e1
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea ecx, [esp + 0x30]
push 0
push ecx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x4076b4
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, edi
push 0
sub edx, esi
lea eax, [esi + ebp]
push edx
push eax
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x40767e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
cmp word [esi + 6], 2
jne 0x40772a
xor eax, eax
mov al, byte [ebp]
cmp eax, 0xff
jne 0x407727
or eax, 0xffffffff
inc ebp
jmp 0x407730
mov eax, dword [ebp]
add ebp, 4
cmp eax, 0xffffffff
jne 0x407770
mov eax, dword [ebx + 4]
xor esi, esi
cmp eax, edx
jbe case.0x406663.109
mov eax, dword [ebx + 0xc]
cmp dword [eax + esi*4], 0
je 0x40775b
mov ecx, dword [eax - 4]
xor eax, eax
mov al, byte [ebp]
mov edx, dword [ecx]
push eax
push 0xffffffffffffffff
call dword [edx + 0x38]
mov eax, dword [ebx + 4]
inc esi
cmp esi, eax
jb 0x407742
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
cmp eax, dword [ebx + 4]
jae case.0x406663.109
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
cmp ecx, edx
je case.0x406663.109
mov edx, dword [ecx]
xor ebx, ebx
mov bl, byte [ebp]
push ebx
push eax
call dword [edx + 0x38]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov ebp, dword [esp + 0x9354]
mov eax, 1
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
xor esi, esi
lea eax, [esp + 0x1c]
mov word [esp + 0x46], 4
mov dword [esp + 0x48], esi
mov edi, dword [esp + 0x46]
push eax
lea ecx, [esp + 0xb8]
push esi
push ecx
and edi, 0xffff
push esi
push esi
mov dword [esp + 0x54], 0x82020476
mov word [esp + 0x58], 0x75
add edi, 8
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x34], esi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
lea edx, [esp + 0x44]
push edi
push edx
push ebp
mov dword [esp + 0x24], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
add esi, eax
cmp esi, edi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebx
test eax, eax
je 0x40788b
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebx
test eax, eax
jne 0x407862
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, edi
push 0
sub ecx, esi
lea edx, [esp + esi + 0x44]
push ecx
push edx
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x407830
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov ecx, dword [esp + 0x935c]
lea edi, [esp + 0x4c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp word [esp + 0x52], 9
mov eax, dword [esp + 0x54]
jne 0x4078e2
and eax, 0xff
mov ecx, dword [esp + 0x52]
and ecx, 0xffff
mov byte [esp + ecx + 0x54], 0
mov ecx, dword [ebx + 4]
cmp eax, ecx
jae 0x407936
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + eax*4]
cmp eax, edx
je 0x407936
mov al, byte [eax + 0xa1]
cmp al, 0xe
jae 0x407936
and eax, 0xff
mov eax, dword [eax*4 + 0x420348]
cmp eax, edx
je 0x407936
mov edx, dword [esp + 0x52]
mov ecx, eax
and edx, 0xffff
lea edx, [esp + edx + 0x54]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x40792c
add word [esp + 0x52], 0xc
mov edi, dword [esp + 0x52]
mov ebx, dword [esp + 0x9354]
mov eax, 1
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
xor esi, esi
push eax
lea ecx, [esp + 0xb8]
push esi
push ecx
and edi, 0xffff
push esi
push esi
add edi, 8
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x34], esi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
lea edx, [esp + 0x50]
push edi
push edx
push ebx
mov dword [esp + 0x24], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
add esi, eax
cmp esi, edi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
je 0x407a0d
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
jne 0x4079e4
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, edi
push 0
sub ecx, esi
lea edx, [esp + esi + 0x50]
push ecx
push edx
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x4079b2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov ecx, dword [esp + 0x935c]
lea edi, [esp + 0x4c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x4237c8]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push ecx
push 0x1965
push str.nMultiPort
push 0x4202f4
call esi
mov edx, dword [0x4237c8]
mov edi, eax
push edx
push 0xe005060a
push str.nMultiIP
push 0x4202f4
call esi
mov ecx, dword [esp + 0x52]
mov ebx, dword [esp + 0x9354]
and ecx, 0xffff
mov dword [esp + 0xb8], ebx
mov dword [esp + ecx + 0x54], eax
mov edx, dword [esp + 0x52]
and edx, 0xffff
mov eax, 1
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
mov dword [esp + edx + 0x58], edi
add word [esp + 0x52], 8
mov esi, dword [esp + 0x52]
lea eax, [esp + 0x1c]
xor edi, edi
push eax
lea ecx, [esp + 0xb8]
push edi
push ecx
and esi, 0xffff
push edi
push edi
add esi, 8
mov dword [esp + 0x34], edi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
lea edx, [esp + 0x50]
push esi
push edx
push ebx
mov dword [esp + 0x24], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
add edi, eax
cmp edi, esi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
je 0x407b7e
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call ebp
test eax, eax
jne 0x407b55
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, esi
push 0
sub ecx, edi
lea edx, [esp + edi + 0x50]
push ecx
push edx
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x407b23
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
mov dword [esp + 0x5c], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x4c], 0x82020476
cmp ebp, eax
mov word [esp + 0x50], 0x82
mov word [esp + 0x52], 0x60
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], ebp
lea edi, [esp + 0x60]
jae 0x407bfe
mov ecx, dword [ebx + 0xc]
mov ebp, dword [ecx + ebp*4]
mov ecx, 0x15
cmp ebp, edx
je 0x407c03
lea esi, [ebp + 0x50]
rep movsd dword es:[edi], dword [esi]
jmp 0x407c07
mov ecx, 0x15
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x52]
mov ebp, dword [esp + 0x9354]
mov eax, 1
lea edx, [esp + 0x1c]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
xor esi, esi
push edx
lea eax, [esp + 0xb8]
push esi
push eax
and edi, 0xffff
push esi
push esi
add edi, 8
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x34], esi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
lea ecx, [esp + 0x50]
push edi
push ecx
push ebp
mov dword [esp + 0x24], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
add esi, eax
cmp esi, edi
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea edx, [esp + 0x30]
push 0
push edx
call ebx
test eax, eax
je 0x407cd8
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea edx, [esp + 0x30]
push 0
push edx
call ebx
test eax, eax
jne 0x407caf
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, edi
push 0
sub eax, esi
lea ecx, [esp + esi + 0x50]
push eax
push ecx
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x407c7d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov eax, dword [ebp]
mov ecx, dword [ebx + 4]
cmp eax, ecx
jae case.0x406663.109
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
cmp ecx, edx
je case.0x406663.109
mov edx, dword [ecx + 0x4c]
mov dword [ebp], edx
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x935c]
push eax
push esi
mov edx, dword [ecx]
call dword [edx + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10
mov ebp, dword [ebp]
mov eax, dword [ebx + 4]
cmp ebp, eax
jae case.0x406663.109
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x935c]
mov ebx, dword [esp + 0x9354]
push eax
mov ecx, dword [ecx + ebp*4]
push esi
push ebx
mov edx, dword [ecx]
call dword [edx + 0x40]
xor ecx, ecx
cmp eax, ecx
je case.0x406663.109
mov eax, 1
lea edx, [esp + 0x1c]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
push edx
lea eax, [esp + 0xb8]
push ecx
push eax
push ecx
push ecx
mov word [esi + 6], cx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x34], ecx
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je case.0x406663.109
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
push 8
push esi
push ebx
mov dword [esp + 0x24], eax
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je case.0x406663.109
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
add edi, eax
cmp edi, 8
jge case.0x406663.109
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae case.0x406663.109
push 1
push 0
push 0
lea ecx, [esp + 0x30]
push 0
push ecx
call ebp
test eax, eax
je 0x407e2f
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea ecx, [esp + 0x30]
push 0
push ecx
call ebp
test eax, eax
jne 0x407e06
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, 8
push 0
sub edx, edi
lea eax, [edi + esi]
push edx
push eax
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x407ddb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x933c
ret 0x10