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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1ec
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 4]
shr eax, 1
mov edx, eax
shl edx, 4
sub edx, eax
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x248]
cmp ecx, 1
push esi
push edi
lea edi, [eax + edx*8 - 0x78]
mov dword [esp + 0x1c], edi
je 0x46590e
cmp byte [ebx + 0x350], 0
fld1
fldz
je 0x465041
fld dword [edi + 0x34]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fxch st(1)
fst dword [esp + 0x14]
sub eax, dword [esp + 0x14]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jae 0x46503d
fld dword [edi + 0x38]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fxch st(1)
fst dword [esp + 0x14]
sub eax, dword [esp + 0x14]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jae 0x465041
fld dword [edi + 0x40]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fst dword [esp + 0x14]
sub eax, dword [esp + 0x14]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jae 0x465041
fld dword [edi + 0x44]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fxch st(1)
fstp dword [esp + 0x14]
sub eax, dword [esp + 0x14]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jae 0x465043
fld dword [edi + 0x4c]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fst dword [esp + 0x14]
sub eax, dword [esp + 0x14]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jae 0x465043
fld dword [edi + 0x50]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fstp dword [esp + 0x14]
sub eax, dword [esp + 0x14]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jae 0x465045
mov byte [esp + 0x1b], 1
jmp 0x46504a
fstp st(1)
jmp 0x465043
fstp st(0)
fstp st(0)
mov byte [esp + 0x1b], 0
mov esi, dword [edi + 0x5c]
mov eax, dword [ebx + 0x34c]
imul esi, ecx
shr esi, 8
xor edx, edx
cmp eax, edx
mov dword [esp + 0x14], esi
je 0x4650a5
lea ecx, [edi + 0x34]
call fcn.004962f0
test al, al
jne 0x4650a5
mov eax, dword [ebx + 0x34c]
mov dword [eax + 8], esi
mov ecx, dword [edi + 0x60]
mov edx, dword [edi + 0x64]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edi + 0x68]
mov dword [eax + 4], edx
mov edx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [edi + 0x70]
push eax
mov eax, dword [ebx + 0x34c]
call fcn.00486420
xor edx, edx
cmp byte [ebx + 0x351], 0
jne 0x46537b
cmp byte [esp + 0x1b], 0
je 0x46537b
lea eax, [esp + 0x48]
mov dword [esp + 0x48], edx
mov word [esp + 0x5c], 1
mov word [esp + 0x5e], dx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x6c], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edx
call fcn.00458300
xor esi, esi
cmp dword [ebx + 0x264], esi
je 0x4651a3
mov ecx, dword [ebx + 0x278]
sub ecx, dword [ebx + 0x270]
mov edx, dword [ebx + 0x274]
sub edx, dword [ebx + 0x26c]
push ecx
push edx
lea eax, [esp + 0xc0]
call fcn.00462ad0
mov ecx, dword [ebx + 0x280]
cmp ecx, esi
je 0x465147
mov eax, dword [ecx]
mov eax, dword [eax]
lea edx, [esp + 0xb8]
push edx
push ebx
call eax
mov ecx, dword [ebx + 0x264]
mov edx, dword [ecx]
mov edx, dword [edx]
lea eax, [esp + 0xb8]
push eax
call edx
cmp eax, 0xffffffff
je 0x465182
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x124]
call fcn.00458520
lea eax, [esp + 0xb8]
call fcn.00462a50
jmp 0x46527b
lea ecx, [esp + 0x48]
lea eax, [ebx + 0x324]
push ecx
call fcn.00458520
lea eax, [esp + 0xb8]
call fcn.00462a50
jmp 0x46527b
cmp dword [ebx + 0x2b4], esi
jbe 0x46526b
cmp dword [ebx + 0x294], esi
mov dword [esp + 0x20], esi
mov word [esp + 0x36], si
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x44], esi
je 0x4651fb
lea edx, [esp + 0x20]
lea eax, [ebx + 0x28c]
push edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov word [esp + 0x38], si
mov dword [esp + 0x34], esi
call fcn.00458520
jmp 0x465252
cmp dword [ebx + 0x318], esi
ja 0x465225
lea eax, [esp + 0x20]
mov word [esp + 0x34], 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
call fcn.00458300
jmp 0x465252
mov eax, dword [ebx + 0x31c]
mov ecx, dword [ebx + 0x2b8]
add ecx, dword [ebx + 0x2b4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x320]
mov word [esp + 0x34], si
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x24]
call fcn.00458520
lea esi, [esp + 0x20]
call fcn.00458440
jmp 0x46527b
lea ecx, [esp + 0x48]
lea eax, [ebx + 0x324]
push ecx
call fcn.00458520
fld dword [edi + 0x3c]
fstp dword [esp + 0x70]
fld dword [edi + 0x48]
fstp dword [esp + 0x74]
fld dword [esp + 0x70]
fld qword [0x567d58]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x70]
fsubr dword [esp + 0x74]
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fistp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
fld dword [esp + 0x70]
fistp dword [esp + 0x10]
cmp byte [ebx + 0x20a], 0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
jne 0x465306
cmp dword [esp + 0x14], 0x100
jne 0x465343
mov ecx, dword [edi + 0x60]
mov edx, dword [edi + 0x64]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edi + 0x68]
mov dword [eax + 4], edx
mov edx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [edi + 0x70]
push eax
lea edi, [esp + 0x5c]
call fcn.00459600
mov esi, edi
jmp 0x4658a9
cmp dword [esp + 0x14], 0x100
jne 0x465343
mov ecx, dword [edi + 0x60]
mov edx, dword [edi + 0x64]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edi + 0x68]
mov dword [eax + 4], edx
mov edx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x70]
mov dword [eax + 0xc], edx
lea eax, [esp + 0x58]
push eax
push ecx
call fcn.00459a20
lea esi, [esp + 0x48]
jmp 0x4658a9
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [edi + 0x68]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + 0x70]
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.00459ca0
lea esi, [esp + 0x48]
jmp 0x4658a9
lea esi, [edi + 0xc]
mov ecx, 0xa
lea edi, [esp + 0x48]
lea eax, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], edx
mov word [esp + 0x34], 1
mov word [esp + 0x36], dx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x44], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
call fcn.00458300
cmp dword [ebx + 0x264], 0
je 0x46577c
cmp dword [ebx + 0x284], 2
jne 0x465484
lea esi, [esp + 0x48]
lea edi, [esp + 0x70]
call fcn.00497410
mov edx, dword [esp + 0x7c]
sub edx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x70]
push edx
push eax
lea eax, [esp + 0xc0]
call fcn.00462ad0
mov ecx, dword [ebx + 0x280]
test ecx, ecx
je 0x465424
mov edx, dword [ecx]
mov edx, dword [edx]
lea eax, [esp + 0xb8]
push eax
push ebx
call edx
mov ecx, dword [ebx + 0x264]
mov eax, dword [ecx]
mov eax, dword [eax]
lea edx, [esp + 0xb8]
push edx
call eax
cmp eax, 0xffffffff
je 0x465478
cmp eax, 0xf4242
jne 0x465467
lea eax, [esp + 0xb8]
call fcn.00462a50
lea esi, [esp + 0x20]
call fcn.00458440
mov eax, 0xf4242
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea ecx, [esp + 0x20]
push ecx
lea eax, [esp + 0x124]
call fcn.00458520
lea eax, [esp + 0xb8]
call fcn.00462a50
cmp dword [ebx + 0x284], 1
jne 0x4656af
lea esi, [esp + 0x150]
call fcn.004629b0
mov ecx, dword [ebx + 0x280]
test ecx, ecx
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0xffffffff
je 0x4654c7
mov edx, dword [ecx]
mov edx, dword [edx]
mov eax, esi
push eax
push ebx
call edx
mov ecx, dword [ebx + 0x264]
mov eax, dword [ecx]
mov eax, dword [eax]
lea edx, [esp + 0x150]
push edx
call eax
lea esi, [esp + 0x48]
lea edi, [esp + 0x70]
call fcn.00497290
mov ecx, dword [ebx + 0x190]
sub ecx, dword [ebx + 0x188]
mov edx, dword [ebx + 0x194]
sub edx, dword [ebx + 0x18c]
mov eax, dword [esp + 0x1b0]
test eax, eax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul dword [esp + 0x78]
fstp dword [esp + 0x78]
fild dword [esp + 0x10]
fmul dword [esp + 0x7c]
fstp dword [esp + 0x7c]
fldz
fst dword [esp + 0xa8]
fst dword [esp + 0xac]
fild dword [esp + 0x1b0]
jge 0x465548
fadd dword [0x567d50]
mov ecx, dword [esp + 0x1b4]
fstp dword [esp + 0xb0]
test ecx, ecx
fild dword [esp + 0x1b4]
jge 0x465567
fadd dword [0x567d50]
fstp dword [esp + 0xb4]
lea edx, [esp + 0x80]
fld1
push edx
fst dword [esp + 0x84]
lea eax, [esp + 0x74]
fst dword [esp + 0x94]
push eax
fstp dword [esp + 0xa8]
lea ecx, [esp + 0xb0]
lea edx, [esp + 0x1f0]
mov byte [esp + 0xac], 1
fst dword [esp + 0x8c]
fst dword [esp + 0x90]
fst dword [esp + 0x94]
fst dword [esp + 0x9c]
fst dword [esp + 0xa0]
fstp dword [esp + 0xa4]
call fcn.00464510
add esp, 8
lea ecx, [esp + 0x80]
lea eax, [esp + 0x48]
call fcn.004961a0
fld dword [0x556b4c]
sub esp, 0x2c
mov edi, esp
fstp dword [esp + 0x28]
mov esi, eax
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xe4]
push ecx
call fcn.00462b00
mov edx, dword [ebp + 8]
cmp byte [edx + 8], 0
je 0x465623
mov dword [esp + 0xd8], 0x80
mov ecx, dword [ebx + 0x280]
test ecx, ecx
je 0x46563c
mov eax, dword [ecx]
mov eax, dword [eax]
lea edx, [esp + 0xb8]
push edx
push ebx
call eax
mov ecx, dword [ebx + 0x264]
mov edx, dword [ecx]
mov edx, dword [edx]
lea eax, [esp + 0xb8]
push eax
call edx
cmp eax, 0xffffffff
je 0x465685
cmp eax, 0xf4242
jne 0x465674
lea eax, [esp + 0xb8]
call fcn.00462a50
lea eax, [esp + 0x150]
jmp 0x46544b
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
call fcn.00458520
mov ecx, 0xa
lea esi, [esp + 0xe8]
lea edi, [esp + 0x48]
lea eax, [esp + 0xb8]
rep movsd dword es:[edi], dword [esi]
call fcn.00462a50
lea eax, [esp + 0x150]
call fcn.00462a50
mov ecx, dword [ebx + 0x188]
cmp ecx, dword [ebx + 0x190]
jge 0x4656cf
mov edx, dword [ebx + 0x18c]
cmp edx, dword [ebx + 0x194]
jl 0x4657c8
lea esi, [esp + 0x150]
call fcn.004629b0
mov eax, dword [ebp + 8]
cmp byte [eax + 8], 0
mov ecx, 0xa
lea esi, [esp + 0x48]
lea edi, [esp + 0x180]
mov dword [esp + 0x150], 2
rep movsd dword es:[edi], dword [esi]
je 0x46570c
mov dword [esp + 0x170], 0x80
mov ecx, dword [ebx + 0x280]
test ecx, ecx
je 0x465725
mov edx, dword [ecx]
mov edx, dword [edx]
lea eax, [esp + 0x150]
push eax
push ebx
call edx
mov ecx, dword [ebx + 0x264]
mov eax, dword [ecx]
mov eax, dword [eax]
lea edx, [esp + 0x150]
push edx
call eax
cmp eax, 0xffffffff
je 0x46574c
lea ecx, [esp + 0x20]
push ecx
lea eax, [esp + 0x1bc]
jmp 0x465757
lea edx, [esp + 0x20]
lea eax, [ebx + 0x324]
push edx
call fcn.00458520
mov ecx, 0xa
lea esi, [esp + 0x180]
lea edi, [esp + 0x48]
lea eax, [esp + 0x150]
rep movsd dword es:[edi], dword [esi]
call fcn.00462a50
jmp 0x4657c8
cmp dword [ebx + 0x2b4], 0
jbe 0x4657b8
fld dword [0x556b4c]
push ecx
fstp dword [esp]
lea eax, [esp + 0x4c]
push eax
lea ecx, [ebx + 0x288]
push ecx
lea esi, [esp + 0x8c]
call fcn.0044dc10
lea edx, [esp + 0x20]
push edx
call fcn.00458520
call fcn.00458440
jmp 0x4657c8
lea ecx, [esp + 0x20]
lea eax, [ebx + 0x324]
push ecx
call fcn.00458520
cmp dword [ebx + 0x264], 0
je 0x4657f5
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
xor eax, eax
mov dword [ebx + 0x26c], eax
xor ecx, ecx
mov dword [ebx + 0x270], ecx
mov dword [ebx + 0x274], edx
mov dword [ebx + 0x278], esi
cmp byte [ebx + 0x351], 0
je 0x46581e
mov eax, dword [esp + 0x1c]
lea edx, [eax + 0x60]
mov eax, dword [eax + 0x70]
push edx
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x28]
push edx
push eax
call fcn.00498590
jmp 0x4658a5
cmp byte [ebx + 0x20a], 0
jne 0x465879
lea ecx, [esp + 0x70]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fldz
fcom dword [esp + 0x4c]
fnstsw ax
test ah, 0x44
jp 0x465866
fcomp dword [esp + 0x54]
fnstsw ax
test ah, 0x44
jp 0x465868
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x48]
push edx
mov edx, dword [eax + 0x70]
lea ecx, [esp + 0x24]
push ecx
lea edi, [eax + 0x60]
push edx
call fcn.00498410
jmp 0x4658a5
fstp st(0)
movzx eax, byte [ebx + 0x20b]
push 0x100
push 0
push eax
jmp 0x465888
mov ecx, dword [esp + 0x14]
movzx edx, byte [ebx + 0x20b]
push ecx
push 1
push edx
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x30]
lea edi, [eax + 0x60]
mov eax, dword [eax + 0x70]
push edx
push eax
call fcn.00497c60
add esp, 0x18
lea esi, [esp + 0x20]
call fcn.00458440
xor eax, eax
cmp dword [ebx + 0x264], eax
je 0x46590e
mov dword [esp + 0x48], eax
mov word [esp + 0x5e], ax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x48]
mov word [esp + 0x5c], 1
mov dword [esp + 0x68], 0xffffffff
call fcn.00458300
add ebx, 0x324
ret
and al, 3
add byte [eax], al
push ebx
lea eax, [esp + 0x4c]
call fcn.00458520
lea esi, [esp + 0x48]
call fcn.00458440
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4