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

Disassembly:
sub esp, 0x94
push ebp
push esi
push edi
fldz
xor eax, eax
mov word [esp + 0x24], ax
xor ebp, ebp
mov dword [esp + 0x60], ebp
xor ecx, ecx
mov word [esp + 0xc], cx
fst qword [esp + 0x8c]
fldz
xor edx, edx
mov word [esp + 0xc], dx
mov word [esp + 0x28], ax
fst dword [esp + 0x10]
fxch st(1)
mov eax, 0xe8767b02
fst qword [esp + 0x3c]
mov dword [esp + 0x50], ebp
fxch st(1)
fst dword [esp + 0x1c]
mov word [esp + 0x70], cx
mov edx, dword [esp + 0x60]
movzx ecx, word [0x4378a8]
sub eax, edx
imul eax, ecx
mov word [0x4378a8], ax
mov esi, 1
fstp dword [esp + 0x14]
mov dword [esp + 0x88], ebp
mov dword [esp + 0x94], esi
fstp qword [esp + 0x1c]
mov dword [esp + 0x98], esi
fld qword [esp + 0x1c]
lea edx, [esp + 0x88]
fsub qword [0x41f348]
fsub qword [0x41f340]
fstp dword [esp + 0x14]
fld qword [esp + 0x1c]
mov dword [esp + 0x9c], edx
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [esp + 0x1c]
mov eax, dword [0x437748]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fld dword [esp + 0x14]
fsub qword [0x41f338]
fadd dword [0x437510]
fsubp st(1)
call fcn.0040b2f0
mov edi, dword [esp + 0xb0]
mov dword [0x437748], eax
fsubr dword [esp + 0x14]
lea ecx, [esp + 0x94]
push ecx
push edi
fstp dword [esp + 0x1c]
call fcn.00401b00
add esp, 8
test eax, eax
jne 0x404c84
pop edi
pop esi
lea eax, [ebp - 0xc]
pop ebp
add esp, 0x94
ret
push ebx
push ebp
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00401730
mov ebx, dword [esp + 0xc8]
push edi
push ebx
call fcn.004010c0
add esp, 0x20
test eax, eax
jge 0x404d73
mov edi, dword [esp + 0xa8]
cmp edi, ebp
je 0x404d37
fldz
xor ecx, ecx
push esi
mov word [esp + 0x14], cx
fstp dword [esp + 0x24]
push edi
call fcn.00402250
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
movzx edx, word [0x4374fc]
add edx, 0x5a589a93
mov word [0x4374fc], dx
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
add eax, eax
add eax, eax
push eax
push ebp
push ecx
call fcn.0040b8d0
mov edx, dword [edi + 8]
mov dword [edx], ebp
mov dword [edi], 1
movzx eax, word [0x437800]
add esp, 0xc
sub eax, 0x25664521
mov word [0x437800], ax
cmp esi, ebp
jne 0x405690
movzx ecx, word [esp + 0x2c]
mov eax, dword [esp + 0xac]
imul ecx, ecx, 0x1236f0d6
mov word [esp + 0x2c], cx
cmp eax, ebp
je 0x404d66
push ebx
push eax
call fcn.00403b40
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x94
ret
lea edx, [esp + 0x34]
push ebx
push edx
call fcn.00403b40
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
lea eax, [esp + 0x58]
push edi
push eax
call fcn.00403b40
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
mov ecx, dword [ebx + 4]
add ecx, 2
push ecx
lea edx, [esp + 0x6c]
mov edi, 1
push edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x3c], edi
call fcn.00402250
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
lea eax, [esp + 0x68]
push ebp
push eax
call fcn.00402ef0
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
lea ecx, [esp + 0x48]
push 2
push ecx
call fcn.00402250
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
mov dx, word [0x43753c]
movsx ecx, dx
mov eax, 0x4c7df239
sub eax, ecx
add dword [0x4376c8], eax
add word [0x43753c], di
lea edx, [esp + 0x78]
push 3
push edx
call fcn.00402250
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
fld dword [0x43760c]
fld qword [esp + 0x40]
fsubr qword [0x41f520]
fucompp
fnstsw ax
fld qword [esp + 0x40]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0x40]
test ah, 0x44
jnp 0x404f31
add word [0x4375dc], di
mov ax, word [0x4375dc]
movzx ecx, word [0x437768]
cwde
sub ecx, eax
sub ecx, 0x74772cf3
mov word [0x437768], cx
fstp st(0)
lea edx, [esp + 0x58]
push edx
call fcn.00401c30
add esp, 4
and eax, 0x8000001f
jns 0x404ea0
dec eax
or eax, 0xffffffe0
inc eax
mov cx, word [esp + 0x2c]
movsx edx, cx
mov ecx, dword [esp + 0x54]
sub ecx, edx
mov dword [esp + 0x1c], ecx
or ebx, 0xffffffff
fild dword [esp + 0x1c]
fsub qword [0x437448]
fadd qword [0x437650]
fstp qword [0x437650]
add dword [esp + 0x2c], ebx
cmp eax, 0x1f
jge 0x404f82
mov edi, 0x1f
sub edi, eax
lea edx, [esp + 0x34]
push edi
push edx
mov dword [esp + 0x24], edi
call fcn.00403e40
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
lea eax, [esp + 0x58]
push edi
push eax
call fcn.00403e40
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x405690
mov cx, word [esp + 0x10]
movsx edx, cx
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fadd qword [esp + 0x40]
fstp qword [esp + 0x40]
inc dword [esp + 0x10]
jmp 0x404f86
mov dx, word [esp + 0x10]
movsx eax, dx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld dword [0x437684]
fsub qword [0x41f518]
fcompp
fnstsw ax
fld dword [0x437684]
fsub st(1)
fstp dword [0x437684]
test ah, 1
jne 0x404e85
mov cx, word [0x437664]
fld dword [esp + 0x14]
fstp st(0)
fsubr dword [esp + 0x14]
fstp dword [esp + 0x14]
jmp 0x404e87
mov dword [esp + 0x1c], ebp
mov ax, word [0x43789c]
mov cx, word [0x437564]
movzx edx, word [esp + 0x28]
movsx edx, dx
cwde
lea eax, [edx + eax - 0x5a7db9b3]
movzx edx, word [esp + 0x28]
add word [0x437564], bx
add dword [esp + 0x28], ebx
movsx ecx, cx
movsx edx, dx
lea ecx, [edx + ecx + 0x74aa3f6a]
cmp eax, ecx
je 0x404ff2
mov dx, word [esp + 0x10]
movsx eax, dx
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fld dword [0x4374f8]
fsubr qword [0x41f510]
fsub qword [0x41f508]
fsubp st(1)
call fcn.0040b2f0
mov word [esp + 0x10], ax
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x5c]
dec ebx
dec eax
mov edi, ebx
sub edi, eax
mov ebp, edi
shl ebp, 5
lea ecx, [esp + 0x58]
push ebp
push ecx
mov dword [esp + 0x20], eax
call fcn.00403e40
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00401b00
add esp, 0x10
test eax, eax
jl 0x405071
lea ebx, [ebx]
fld dword [0x4373c0]
mov eax, dword [esp + 0x70]
fmul qword [0x41f500]
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x38]
fstp dword [0x4373c0]
inc dword [eax + edi*4]
push edx
mov eax, edx
push eax
call fcn.00404960
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x44]
push edx
call fcn.00401b00
add esp, 0x14
test eax, eax
jge 0x405030
movzx eax, word [esp + 0x2c]
movzx ecx, word [esp + 0x28]
lea edx, [esp + 0x58]
add eax, ecx
push ebp
push edx
mov word [esp + 0x30], ax
call fcn.00401e00
add esp, 8
cmp ebx, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
jle 0x4055ca
add edi, edi
add edi, edi
add ebp, 0xffffffe0
mov dword [esp + 0x30], edi
mov dword [esp + 0x84], ebp
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x18]
lea ebp, [eax + ebx*4]
lea eax, [ecx + edx*4]
mov ecx, dword [ebp]
mov dword [esp + 0x20], ebp
cmp ecx, dword [eax]
jb 0x4050de
mov edx, dword [esp + 0x70]
mov dword [edi + edx - 4], 0xffffffff
jmp 0x4052c4
fld qword [esp + 0x40]
fadd qword [esp + 0x40]
mov ecx, dword [0x437458]
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
faddp st(1)
fadd dword [0x437510]
fstp dword [0x437510]
fld qword [esp + 0x40]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0x40]
mov ecx, dword [0x4376cc]
mov edx, dword [esp + 0x54]
dec dword [0x4376cc]
add ecx, 0x695bb152
cmp edx, ecx
jl 0x405148
fld dword [esp + 0x14]
fadd qword [0x41f4f8]
fsub qword [0x41f4f0]
fmul dword [esp + 0x14]
fstp dword [esp + 0x14]
fld qword [0x437640]
mov esi, dword [eax]
fsub qword [0x41f4e8]
xor edx, edx
mov edi, esi
shr edi, 0x10
fstp dword [0x437824]
mov ecx, dword [ebp]
mov eax, ecx
div edi
movzx edx, word [ebp - 2]
mov ebx, eax
imul eax, edi
sub ecx, eax
shl ecx, 0x10
or ecx, edx
movzx edx, si
mov eax, ebx
imul eax, edx
cmp ecx, eax
jae 0x405198
add ecx, esi
dec ebx
cmp ecx, esi
jb 0x405198
cmp ecx, eax
jae 0x405198
add ecx, esi
dec ebx
cmp ecx, esi
jae 0x40518d
sub ecx, eax
mov eax, ecx
xor edx, edx
div edi
mov edx, eax
movzx eax, word [0x437504]
add eax, 0x630c9f68
mov word [0x437504], ax
movzx eax, word [esp + 0x74]
mov ebp, dword [esp + 0x54]
sub eax, ebp
movzx ebp, word [esp + 0x28]
add eax, 0x6fb7168a
imul eax, ebp
mov word [esp + 0x28], ax
mov eax, edx
imul eax, edi
sub ecx, eax
mov eax, dword [esp + 0x20]
or ebp, 0xffffffff
add dword [esp + 0x74], ebp
movzx eax, word [eax - 4]
shl ecx, 0x10
or ecx, eax
movzx eax, word [0x437794]
sub eax, 0x1c7cd9ef
mov word [0x437794], ax
movzx eax, si
mov edi, edx
imul edi, eax
cmp ecx, edi
jae 0x405272
fld dword [esp + 0x14]
mov eax, dword [0x437898]
fadd qword [0x41f4e0]
add dword [0x437898], ebp
mov dword [esp + 0x20], eax
fiadd dword [esp + 0x20]
fcomp qword [0x41f4d8]
fnstsw ax
fld dword [esp + 0x14]
fadd st(1)
fstp dword [esp + 0x14]
test ah, 0x41
jp 0x405260
mov ax, word [0x43794c]
cwde
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [0x4374e4]
fstp dword [0x4374e4]
inc word [0x43794c]
add ecx, esi
dec edx
cmp ecx, esi
jb 0x405272
cmp ecx, edi
jae 0x405272
add ecx, esi
dec edx
cmp ecx, esi
jae 0x405267
fld qword [0x437890]
mov edi, dword [esp + 0x30]
fsub qword [0x41f4d0]
shl ebx, 0x10
fadd qword [esp + 0x90]
fstp qword [esp + 0x90]
fadd qword [0x437890]
fstp qword [0x437890]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
lea ecx, [eax + ecx - 0x43b0df16]
mov dword [esp + 0x54], ecx
add dword [esp + 0x64], ebp
or ebx, edx
mov edx, dword [esp + 0x70]
mov dword [edi + edx - 4], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
mov ebp, 1
add dword [edi + eax - 4], ebp
mov eax, dword [esp + 0x70]
fldz
dec dword [edi + eax - 4]
xor eax, eax
lea ecx, [esp + 0x48]
push ebp
mov word [esp + 0x14], ax
fstp dword [esp + 0x24]
push ecx
call fcn.00402250
mov esi, eax
add esp, 8
test esi, esi
jne 0x40568e
movzx edx, word [0x4374fc]
mov eax, dword [esp + 0x4c]
add edx, 0x5a589a93
lea ecx, [eax*4]
push ecx
mov word [0x4374fc], dx
mov edx, dword [esp + 0x54]
push esi
push edx
call fcn.0040b8d0
mov eax, dword [esp + 0x5c]
mov dword [eax], esi
movzx ecx, word [0x437800]
add esp, 0xc
sub ecx, 0x25664521
mov dword [esp + 0x48], ebp
mov word [0x437800], cx
test esi, esi
jne 0x40568e
mov ecx, dword [esp + 0x18]
cmp ecx, ebp
jge 0x40535e
xor eax, eax
jmp 0x405366
mov edx, dword [esp + 0x60]
mov eax, dword [edx + ecx*4 - 4]
mov edx, dword [esp + 0x50]
mov dword [edx], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + ecx*4]
mov edx, dword [esp + 0x50]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [edi + eax - 4]
push ecx
lea edx, [esp + 0x4c]
push edx
mov eax, edx
push eax
call fcn.00404740
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40568e
fldz
xor ecx, ecx
lea edx, [esp + 0x78]
push ebp
mov word [esp + 0x14], cx
fstp dword [esp + 0x24]
push edx
call fcn.00402250
mov esi, eax
add esp, 8
test esi, esi
jne 0x40568e
movzx eax, word [0x4374fc]
mov ecx, dword [esp + 0x7c]
add eax, 0x5a589a93
lea edx, [ecx*4]
push edx
mov word [0x4374fc], ax
mov eax, dword [esp + 0x84]
push esi
push eax
call fcn.0040b8d0
mov ecx, dword [esp + 0x8c]
mov dword [ecx], esi
movzx edx, word [0x437800]
add esp, 0xc
sub edx, 0x25664521
mov dword [esp + 0x78], ebp
mov word [0x437800], dx
test esi, esi
jne 0x40568e
cmp ebx, 2
fld dword [0x437814]
fmul qword [0x41f4c8]
fstp dword [0x437814]
jge 0x405435
xor eax, eax
jmp 0x40543d
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + ebx*4 - 8]
cmp ebx, ebp
mov ecx, dword [esp + 0x80]
mov dword [ecx], eax
jge 0x40544e
xor eax, eax
jmp 0x405456
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + ebx*4 - 4]
mov ecx, dword [esp + 0x80]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + ebx*4]
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0x78]
mov dword [ecx + 8], eax
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.00401b00
add esp, 8
test eax, eax
jg 0x4052d1
mov ecx, dword [esp + 0x70]
mov edx, dword [edi + ecx - 4]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.00404740
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40568e
mov ebp, dword [esp + 0x84]
lea edx, [esp + 0x48]
push ebp
push edx
call fcn.00403e40
mov esi, eax
add esp, 8
test esi, esi
jne 0x40568e
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x38]
push ecx
mov edx, ecx
push edx
call fcn.00404960
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40568e
push eax
lea eax, [esp + 0x38]
push eax
call fcn.00402560
add esp, 8
test eax, eax
jge 0x4055aa
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.00403b40
mov esi, eax
add esp, 8
test esi, esi
jne 0x40568e
fld qword [0x4374f0]
fadd qword [0x41f230]
fstp qword [0x4374f0]
fld qword [0x4374f0]
mov eax, dword [0x4375e8]
fsub qword [0x41f4c0]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
faddp st(1)
call fcn.0040b2f0
lea ecx, [esp + 0x48]
push ebp
push ecx
mov dword [0x4375e8], eax
call fcn.00403e40
mov esi, eax
add esp, 8
test esi, esi
jne 0x40568e
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x38]
push eax
mov ecx, eax
push ecx
call fcn.00404a80
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40568e
movzx edx, word [0x437868]
mov eax, dword [esp + 0x70]
imul edx, edx, 0x50d26ece
mov word [0x437868], dx
dec dword [edi + eax - 4]
dec ebx
sub ebp, 0x20
sub edi, 4
cmp ebx, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x30], edi
jg 0x4050b0
mov ax, word [0x4375ec]
movzx ecx, word [esp + 0x2c]
mov edi, dword [esp + 0xa8]
cwde
sub eax, ecx
add eax, 0x57ae3404
mov word [0x4375ec], ax
test edi, edi
je 0x405611
lea edx, [esp + 0x68]
push edx
push edi
call fcn.00403b40
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax]
mov edx, dword [esp + 0xbc]
add esp, 8
imul ecx, dword [edx]
mov dword [edi], ecx
mov edi, dword [esp + 0xac]
test edi, edi
je 0x405656
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.00401e00
lea edx, [esp + 0x3c]
push edx
push edi
call fcn.00403b40
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax]
push 0
push edi
mov dword [edi], ecx
call fcn.00402560
add esp, 0x18
test eax, eax
jne 0x405656
mov dword [edi], 1
mov edx, dword [0x437594]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fld qword [esp + 0x40]
fadd qword [0x41f4b8]
fadd qword [0x4374a8]
fsubp st(1)
call fcn.0040b2f0
mov dword [0x437594], eax
fld qword [esp + 0x40]
fsub qword [0x41f230]
fstp qword [esp + 0x40]
xor ebp, ebp
push ebp
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00401790
add esp, 0x18
pop ebx
pop edi
mov eax, esi
pop esi
pop ebp
add esp, 0x94
ret