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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [0x426070]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
fldz
xor eax, eax
fst dword [esp + 0x1c]
fldz
xor ecx, ecx
fstp qword [esp + 0x20]
mov esi, dword [ebp + 8]
mov word [esp + 0x14], ax
mov eax, dword [esi + 4]
add eax, eax
mov word [esp + 0x18], cx
fstp dword [esp + 0x10]
mov ecx, dword [esi]
add eax, eax
add eax, eax
mov edx, ecx
shr edx, 0x1d
or eax, edx
mov edx, eax
shr edx, 0x18
mov byte [esp + 0x30], dl
mov edx, eax
shr edx, 0x10
mov byte [esp + 0x31], dl
mov byte [esp + 0x33], al
mov edx, eax
mov eax, dword [0x425940]
imul eax, eax, 0x8d61d360
shr edx, 8
mov byte [esp + 0x32], dl
add ecx, ecx
mov dword [0x425940], eax
mov ax, word [0x423114]
add ecx, ecx
add ecx, ecx
mov ebx, dword [ebp + 0xc]
mov edx, ecx
shr edx, 0x18
mov byte [esp + 0x34], dl
movsx edx, ax
mov eax, 0xc3a436fb
sub eax, edx
mov edx, dword [0x4241d4]
add edx, eax
mov dword [esp + 0x2c], edx
mov eax, ecx
shr eax, 0x10
fild dword [esp + 0x2c]
mov edx, ecx
shr edx, 8
fstp qword [esp + 0x20]
dec dword [0x4241d4]
mov byte [esp + 0x35], al
mov eax, dword [esi]
and eax, 0x3f
mov byte [esp + 0x36], dl
mov byte [esp + 0x37], cl
mov edi, 0x38
cmp eax, 0x38
jb 0x40470f
mov edi, 0x78
sub edi, eax
movzx eax, word [0x4259b4]
push 0x40
lea ecx, [esp + 0x3c]
sub eax, 0x76def0dc
push 0
mov word [0x4259b4], ax
push ecx
call fcn.0040b890
movzx edx, word [esp + 0x24]
movsx eax, dx
mov ecx, 0x4e8ab2b6
sub ecx, eax
mov dword [esp + 0x38], ecx
add esp, 0xc
fild dword [esp + 0x2c]
fadd qword [esp + 0x20]
fstp qword [esp + 0x20]
dec dword [esp + 0x18]
mov byte [esp + 0x38], 0x80
inc dword [esp + 0x14]
movzx edx, word [0x425068]
mov cx, word [esp + 0x14]
movsx eax, dx
movsx edx, cx
add edx, eax
mov eax, dword [0x42546c]
add eax, 0x1ca43446
cmp edx, eax
jg 0x404790
fld dword [esp + 0x10]
call fcn.0040b620
mov word [esp + 0x14], ax
push edi
lea ecx, [esp + 0x3c]
push ecx
push esi
call fcn.00403a90
push 8
lea edx, [esp + 0x40]
push edx
push esi
call fcn.00403a90
or edi, 0xffffffff
add esp, 0x18
add dword [esp + 0x18], edi
fld qword [esp + 0x20]
mov ax, word [esp + 0x18]
movsx ecx, ax
mov dword [esp + 0x10], ecx
lea ecx, [esi + 8]
lea edx, [ebx + 2]
fild dword [esp + 0x10]
lea esi, [edi + 9]
fadd dword [esp + 0x1c]
fsubp st(1)
fstp qword [esp + 0x20]
fld dword [esp + 0x1c]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x1c]
fld qword [0x41f600]
fld qword [0x41f5f8]
add dword [0x425a2c], edi
fld qword [0x423148]
mov eax, dword [0x425a2c]
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x14]
fild dword [esp + 0x10]
cwde
fsubp st(1)
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
faddp st(1)
fmul qword [0x424e80]
fstp qword [0x424e80]
add dword [esp + 0x14], edi
movzx eax, byte [ecx + 3]
mov byte [edx - 2], al
movzx eax, word [esp + 0x14]
cwde
mov dword [esp + 0x10], eax
movzx eax, byte [ecx + 2]
fild dword [esp + 0x10]
mov byte [edx - 1], al
mov eax, dword [ecx]
fstp dword [esp + 0x1c]
shr eax, 8
mov byte [edx], al
fld qword [str._TI_odr_0d]
fadd st(3)
fstp qword [str._TI_odr_0d]
fld qword [str._TI_odr_0d]
fmul qword [0x425f78]
fstp qword [0x425f78]
movzx eax, byte [ecx]
mov byte [edx + 1], al
fld qword [str.6uidp]
fld qword [0x423060]
fadd st(3)
fcompp
fnstsw ax
fld qword [0x423060]
fadd st(3)
fstp qword [0x423060]
test ah, 0x41
jp 0x4048bd
fld qword [esp + 0x20]
fsub st(3)
fstp qword [esp + 0x20]
fld qword [esp + 0x20]
fsub st(1)
fmul dword [0x42500c]
fstp dword [0x42500c]
add ecx, 4
add edx, 4
sub esi, 1
jne 0x4047f4
movzx ecx, word [0x4231c8]
fstp st(2)
imul ecx, ecx, 0xa980088
fstp st(0)
fstp st(0)
pop edi
mov word [0x4231c8], cx
mov ecx, dword [esp + 0x78]
pop esi
pop ebx
xor ecx, esp
call fcn.0040b872
mov esp, ebp
pop ebp
ret