Function at 0x4507e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x60
mov eax, dword [esp + 0x68]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x70]
push edi
xor edi, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
push esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
call fcn.0044d08f
pop ecx
or ebp, 0xffffffff
mov dword [esp + 0x1c], edx
mov ebx, edi
mov dword [esp + 0x28], eax
and dword [esp + 0x20], ebx
mov ecx, eax
or ecx, dword [esp + 0x1c]
mov edx, ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], 2
jne 0x450847
and dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], ebp
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov dword [eax + 0x1800], ecx
mov dword [eax + 0x1804], esi
mov esi, dword [esp + 0x74]
cmp dword [esp + 0x20], 0
fld qword [0x520678]
je 0x4508a4
mov eax, dword [esp + 0x84]
cmp edx, eax
ja 0x4508a4
jb 0x450886
cmp ebp, ecx
ja 0x4508a4
sub ecx, ebp
sbb eax, edx
test eax, eax
ja 0x4508a4
jb 0x450898
cmp ecx, 0x1fffe
ja 0x4508a4
and dword [esp + 0x74], 0
fstp st(0)
jmp 0x450a0b
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x20], eax
jb 0x4508cb
mov ebx, dword [esp + 0x10]
fstp st(0)
add ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x78]
adc edi, dword [esp + 0x18]
shrd ebx, edi, 1
shr edi, 1
jmp 0x4509dd
mov eax, dword [esp + 0x10]
mov ebx, closesocket
sub eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
sbb ecx, dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0x40], eax
mov edx, edi
mov eax, ecx
mov dword [esp + 0x48], edi
and ecx, 0x7fffffff
mov dword [esp + 0x58], edi
and eax, 0x80000000
mov dword [esp + 0x44], ecx
fild qword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x38]
fild qword [esp + 0x48]
sbb ecx, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
mov eax, ecx
and ecx, 0x7fffffff
mov dword [esp + 0x68], edi
and eax, 0x80000000
mov dword [esp + 0x54], ecx
fchs
mov ecx, dword [esp + 0x84]
faddp st(1)
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0x38]
mov dword [esp + 0x60], eax
sbb ecx, dword [esp + 0x3c]
fstp qword [esp + 0x2c]
fld qword [esp + 0x2c]
mov eax, ecx
fild qword [esp + 0x50]
and ecx, 0x7fffffff
and eax, ebx
mov dword [esp + 0x64], ecx
mov ecx, edi
mov dword [esp + 0x6c], eax
fild qword [esp + 0x58]
mov dword [esp + 0x74], ecx
fchs
faddp st(1)
fstp qword [esp + 0x2c]
fld qword [esp + 0x2c]
fild qword [esp + 0x60]
fild qword [esp + 0x68]
fchs
faddp st(1)
fstp qword [esp + 0x2c]
fdivr qword [esp + 0x2c]
mov dword [esp + 0x2c], edx
fmulp st(1)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x4509ca
fsub st(1)
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x4509cc
add ecx, edi
mov dword [esp + 0x74], ecx
adc edx, ebx
mov dword [esp + 0x2c], edx
jmp 0x4509cc
fstp st(1)
call fcn.00417216
mov ebx, eax
mov edi, edx
add ebx, dword [esp + 0x74]
adc edi, dword [esp + 0x2c]
mov eax, dword [esi + 4]
push dword [eax + 0x30]
push edi
push ebx
push esi
call dword [eax + 8]
add esp, 0x10
test eax, eax
jne 0x450ad1
push esi
call fcn.0044cfa2
pop ecx
test eax, eax
je 0x450ad9
mov dword [esp + 0x74], 1
mov eax, dword [esi + 4]
push esi
and dword [eax + 0x180c], 0
call fcn.0044d248
pop ecx
test eax, eax
je 0x450ad1
mov eax, dword [esi]
cmp dword [eax], 7
je 0x450ad1
mov eax, dword [esi + 4]
xor ecx, ecx
cmp dword [eax + 0x180c], ecx
jne 0x450a50
cmp dword [esp + 0x74], ecx
je 0x450ad1
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
jmp 0x450ab4
cmp dword [eax + 0xe30], ecx
je 0x450acc
mov edx, dword [eax + 0xec4]
mov ebp, dword [eax + 0xec0]
mov dword [esp + 0x34], edx
cmp dword [esp + 0x74], ecx
je 0x450abc
cmp edx, dword [esp + 0x84]
ja 0x450aa0
jb 0x450a82
cmp ebp, dword [esp + 0x80]
ja 0x450aa0
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x14], ebx
jne 0x450a96
cmp dword [esp + 0x18], edi
je 0x450ad1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edi
jmp 0x450abc
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x10], ebx
jne 0x450ab4
cmp dword [esp + 0x78], edi
je 0x450ad1
mov dword [esp + 0x78], edi
mov dword [esp + 0x10], ebx
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x80]
jmp 0x450868
xor eax, eax
inc eax
jmp 0x450adb
mov eax, dword [esi]
mov dword [eax], 6
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret