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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x10c
mov eax, dword [esp + 0x120]
mov ebx, dword [eax]
mov esi, dword [ebx + 0x5a8]
call fcn.00413790
mov ecx, eax
sub eax, dword [ebx + 0x528]
mov ebp, edx
mov dword [esp + 0x58], eax
mov eax, edx
sub eax, dword [ebx + 0x52c]
fild dword [esp + 0x58]
mov edx, dword [ebx + 0x4bc]
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x4b8]
fild dword [esp + 0x58]
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], eax
fdiv dword [0x596260]
faddp st(1)
fst qword [ebx + 0x4e0]
fild qword [esp + 0x60]
fldz
fxch st(2)
fucomi st(2)
fstp st(2)
jbe 0x417530
fdiv st(1)
fnstcw word [esp + 0x96]
movzx eax, word [esp + 0x96]
mov ah, 0xc
mov word [esp + 0x94], ax
fldcw word [esp + 0x94]
fistp qword [esp + 0x88]
fldcw word [esp + 0x96]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov dword [ebx + 0x4e8], eax
mov dword [ebx + 0x4ec], edx
mov eax, dword [ebx + 0x4c0]
mov edx, dword [ebx + 0x4c4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
fild qword [esp + 0x58]
fld st(1)
fdivp st(1)
fldcw word [esp + 0x94]
fistp qword [esp + 0x88]
fldcw word [esp + 0x96]
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x74], edx
mov dword [ebx + 0x4f4], edx
xor edx, edx
cmp dword [ebx + 0x4a0], ecx
mov dword [esp + 0x70], eax
mov dword [ebx + 0x4f0], eax
je 0x417490
mov eax, esi
mov edx, 0x2aaaaaab
mov dword [ebx + 0x4a0], ecx
imul edx
mov eax, esi
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x58]
add eax, eax
sub esi, eax
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x64]
lea edi, [ebx + esi*8]
jle 0x4175b0
mov dword [edi + 0x548], edx
mov dword [edi + 0x54c], eax
mov dword [edi + 0x578], ecx
mov dword [edi + 0x57c], ebp
mov eax, dword [ebx + 0x5a8]
add eax, 1
cmp eax, 1
mov dword [esp + 0x58], eax
mov dword [ebx + 0x5a8], eax
je 0x4176a1
xor esi, esi
cmp eax, 5
jle 0x4173df
mov edx, 0x2aaaaaab
mov esi, dword [esp + 0x58]
imul edx
mov eax, dword [esp + 0x58]
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
add eax, eax
sub esi, eax
mov edx, dword [ebx + esi*8 + 0x57c]
mov eax, dword [ebx + esi*8 + 0x578]
fstp qword [esp + 0x58]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call fcn.004137c0
test eax, eax
mov ecx, eax
mov eax, 1
cmove ecx, eax
mov eax, dword [edi + 0x548]
sub eax, dword [ebx + esi*8 + 0x548]
mov edx, dword [edi + 0x54c]
sbb edx, dword [ebx + esi*8 + 0x54c]
fld qword [esp + 0x58]
mov edi, eax
cmp edx, 0
mov ebp, edx
jl 0x4175ce
jle 0x4175c3
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebp
fnstcw word [esp + 0x96]
fild qword [esp + 0x58]
mov dword [esp + 0x58], ecx
mov edx, 1
movzx eax, word [esp + 0x96]
fild dword [esp + 0x58]
fdiv dword [0x596264]
mov ah, 0xc
mov word [esp + 0x94], ax
fdivp st(1)
fldcw word [esp + 0x94]
fistp qword [ebx + 0x4c8]
fldcw word [esp + 0x96]
mov edi, dword [ebx + 0x4d8]
mov esi, edi
and esi, 0x10
jne 0x417624
mov ecx, dword [ebx + 0x19c]
test ecx, ecx
je 0x417635
fstp st(0)
mov eax, dword [ebx + 0x4c0]
mov edx, dword [ebx + 0x4c4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov eax, dword [ebx + 0x4b0]
mov edx, dword [ebx + 0x4b4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x4bc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [ebx + 0x4a8]
mov edx, dword [ebx + 0x4ac]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x1d0]
mov dword [esp], eax
call ecx
test eax, eax
mov edi, eax
jne 0x417682
jmp 0x417522
fstp st(0)
add esp, 0x10c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
fnstcw word [esp + 0x96]
movzx eax, word [esp + 0x96]
mov ah, 0xc
mov word [esp + 0x94], ax
fldcw word [esp + 0x94]
fistp qword [esp + 0x88]
fldcw word [esp + 0x96]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov dword [ebx + 0x4e8], eax
mov dword [ebx + 0x4ec], edx
mov eax, dword [ebx + 0x4c0]
mov edx, dword [ebx + 0x4c4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
fild qword [esp + 0x58]
fld st(1)
ja 0x417310
fstp st(0)
fld1
jmp 0x417310
jge 0x4176e0
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
jmp 0x417389
cmp eax, 0x418937
ja 0x417442
mov eax, edi
mov edi, 0x3e8
mov dword [esp + 8], ecx
mul edi
sar ecx, 0x1f
fstp qword [esp + 0x58]
imul esi, ebp, 0x3e8
mov dword [esp + 0xc], ecx
mov dword [esp], eax
add edx, esi
mov dword [esp + 4], edx
call fcn.004398c0
mov edi, dword [ebx + 0x4d8]
mov dword [ebx + 0x4cc], edx
mov edx, 1
mov dword [ebx + 0x4c8], eax
fld qword [esp + 0x58]
mov esi, edi
and esi, 0x10
je 0x4174a1
fstp st(0)
jmp 0x417626
fstp st(0)
add esp, 0x10c
xor esi, esi
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 0x198]
test eax, eax
je 0x417700
fstp st(0)
fild qword [ebx + 0x4c0]
fstp qword [esp + 0x1c]
fild qword [ebx + 0x4b0]
fstp qword [esp + 0x14]
fild qword [ebx + 0x4b8]
fstp qword [esp + 0xc]
fild qword [ebx + 0x4a8]
fstp qword [esp + 4]
mov edx, dword [ebx + 0x1d0]
mov dword [esp], edx
call eax
test eax, eax
mov edi, eax
je 0x417522
mov dword [esp], ebx
mov dword [esp + 4], 0x596140
mov esi, edi
call fcn.00408380
add esp, 0x10c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0x74]
cmp ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
mov eax, ebp
mov edx, edi
jg 0x4176c0
jl 0x4176f0
cmp edi, dword [esp + 0x68]
jb 0x4176f0
nop
lea esi, [esi]
mov dword [ebx + 0x4c8], edx
mov dword [ebx + 0x4cc], eax
mov edx, 1
jmp 0x417490
cmp edx, dword [esp + 0x60]
jae 0x417389
jmp 0x4175b6
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x6c]
mov edx, edi
mov eax, ebp
jmp 0x4176c0
test edx, edx
je 0x417520
test edi, 0x80
jne 0x417756
mov eax, dword [ebx + 0x86dc]
mov edx, dword [ebx + 0x86d8]
mov edi, eax
or edi, edx
jne 0x417c91
mov dword [esp + 4], 0x596184
mov eax, dword [ebx + 0x128]
fstp qword [esp + 0x58]
mov dword [esp], eax
call fcn.00419610
mov edi, dword [ebx + 0x4d8]
fld qword [esp + 0x58]
or edi, 0x80
mov dword [ebx + 0x4d8], edi
fnstcw word [esp + 0x96]
movzx eax, word [esp + 0x96]
test edi, 0x20
mov ah, 0xc
mov word [esp + 0x94], ax
fldcw word [esp + 0x94]
fistp qword [esp + 0x58]
fldcw word [esp + 0x96]
je 0x417b90
mov eax, dword [ebx + 0x4f4]
mov edx, dword [ebx + 0x4f0]
cmp eax, 0
jl 0x417b90
jle 0x417b82
mov ecx, dword [ebx + 0x4b0]
mov ebp, dword [ebx + 0x4b4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 0x60], ecx
call fcn.004398c0
cmp ebp, 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
jl 0x417d5c
mov ecx, dword [esp + 0x60]
jle 0x417d1d
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], 0
mov dword [esp], ecx
mov dword [esp + 4], ebp
call fcn.004398c0
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebx + 0x4c0]
mov edx, dword [ebx + 0x4c4]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004398c0
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
and edi, 0x40
je 0x417b63
mov eax, dword [ebx + 0x4ec]
mov edx, dword [ebx + 0x4e8]
cmp eax, 0
jl 0x417b63
jle 0x417b5a
mov edi, dword [ebx + 0x4ac]
mov ebp, dword [ebx + 0x4a8]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp], ebp
mov dword [esp + 4], edi
call fcn.004398c0
cmp edi, 0
mov dword [esp + 0x68], eax
mov ecx, edx
jl 0x417d80
jle 0x417cd8
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], 0
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 0x90], ecx
call fcn.004398c0
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x4bc]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004398c0
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
cmp ebp, ecx
jg 0x4178f6
jl 0x4178f0
cmp edi, dword [esp + 0x68]
jae 0x4178f6
mov edi, dword [esp + 0x68]
mov ebp, ecx
cmp ebp, 0
jl 0x417c4e
jle 0x417c45
mov edx, edi
sub edx, dword [esp + 0x58]
mov ecx, ebp
sbb ecx, dword [esp + 0x5c]
lea eax, [esp + 0xa6]
call fcn.00416af0
lea eax, [esp + 0xb0]
mov edx, edi
mov ecx, ebp
call fcn.00416af0
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0xba]
call fcn.00416af0
mov eax, dword [ebx + 0x4d8]
test al, 0x20
je 0x417bf2
mov edx, dword [ebx + 0x4c0]
mov ecx, dword [ebx + 0x4c4]
mov edi, dword [ebx + 0x4b0]
mov ebp, dword [ebx + 0x4b4]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
test al, 0x40
je 0x417bd1
mov eax, dword [ebx + 0x4a8]
mov edx, dword [ebx + 0x4ac]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov eax, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x4bc]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
add edi, dword [esp + 0x58]
adc ebp, dword [esp + 0x5c]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x68]
mov edx, ebp
add edi, dword [esp + 0x70]
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x6c]
adc ebp, dword [esp + 0x74]
cmp edx, 0
jl 0x417cc3
jle 0x417c57
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004398c0
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, edi
mov edx, ebp
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004398c0
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov edx, dword [ebx + 0x4cc]
mov eax, dword [ebx + 0x4c8]
lea ecx, [esp + 0xf6]
call fcn.00416cc0
mov edx, dword [ebx + 0x4f4]
mov dword [esp + 0x68], eax
lea ecx, [esp + 0xec]
mov eax, dword [ebx + 0x4f0]
call fcn.00416cc0
mov edx, dword [ebx + 0x4ec]
mov dword [esp + 0x70], eax
lea ecx, [esp + 0xe2]
mov eax, dword [ebx + 0x4e8]
call fcn.00416cc0
mov edx, dword [ebx + 0x4c4]
mov dword [esp + 0x90], eax
lea ecx, [esp + 0xce]
mov eax, dword [ebx + 0x4c0]
call fcn.00416cc0
mov edx, dword [ebx + 0x4bc]
mov ebp, eax
mov eax, dword [ebx + 0x4b8]
lea ecx, [esp + 0xc4]
call fcn.00416cc0
mov edx, dword [esp + 0x5c]
mov edi, eax
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0xd8]
call fcn.00416cc0
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x60]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0xa6]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0xba]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x14], edi
mov dword [esp + 4], 0x596228
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0xb0]
mov dword [esp + 0x18], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x24], ecx
mov eax, dword [ebx + 0x128]
mov dword [esp], eax
call fcn.00419610
mov eax, dword [ebx + 0x128]
mov dword [esp], eax
call fcn.00444a20
jmp 0x417522
cmp edx, 0
ja 0x417855
mov dword [esp + 0x68], 0
xor ecx, ecx
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
jmp 0x4178dc
cmp edx, 0
ja 0x4177a8
nop
lea esi, [esi]
and edi, 0x40
je 0x417c12
mov eax, dword [ebx + 0x4ec]
mov edx, dword [ebx + 0x4e8]
cmp eax, 0
jle 0x417c0b
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
jmp 0x417855
mov eax, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x4bc]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
jmp 0x41799f
mov edi, dword [ebx + 0x4c0]
mov ebp, dword [ebx + 0x4c4]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebp
jmp 0x41796f
jl 0x417c12
cmp edx, 0
ja 0x417ba6
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x60], 0
xor edx, edx
mov dword [esp + 0x64], 0
xor ecx, ecx
jmp 0x417911
cmp edi, 0
ja 0x417905
xor edx, edx
xor ecx, ecx
jmp 0x417911
cmp dword [esp + 0x58], 0x2710
ja 0x4179d0
cmp dword [esp + 0x5c], 0
jl 0x417cc3
jle 0x417cbc
mov eax, edi
mov ecx, 0x64
mov edi, dword [esp + 0x58]
imul ebp, ebp, 0x64
mul ecx
mov dword [esp + 8], edi
add edx, ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0xc], ebp
jmp 0x417a00
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
fstp qword [esp + 0x58]
mov dword [esp + 4], 0x596154
mov eax, dword [ebx + 0x128]
mov dword [esp], eax
call fcn.00419610
fld qword [esp + 0x58]
jmp 0x417726
cmp dword [esp + 0x58], 0
ja 0x417c6e
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
jmp 0x417a14
cmp ebp, 0x2710
ja 0x41788a
cmp edi, 0
jl 0x417d80
jle 0x417d77
imul eax, dword [ebx + 0x4bc], 0x64
mov dword [esp + 0x90], ecx
mov ecx, eax
mov eax, 0x64
mul dword [ebx + 0x4b8]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edi
add edx, ecx
jmp 0x4178c1
cmp ecx, 0x2710
ja 0x4177e7
cmp ebp, 0
jl 0x417d5c
jle 0x417d57
imul eax, dword [ebx + 0x4c4], 0x64
mov dword [esp + 0x60], eax
mov eax, 0x64
mul dword [ebx + 0x4c0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
add edx, dword [esp + 0x60]
jmp 0x417817
cmp ecx, 0
ja 0x417d30
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
jmp 0x417831
cmp ebp, 0
ja 0x417cf3
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
jmp 0x4178dc