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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x65651b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x258
push ebx
push ebp
push esi
push edi
mov ebx, ecx
push 0x258
mov dword [esp + 0x1c], ebx
call fcn.004784f0
mov ecx, dword [0x826818]
add esp, 4
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
push 1
push 4
push 1
push 0x69c1a0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
call fcn.004467b0
mov ecx, dword [0x826818]
push eax
call fcn.00448f10
mov dword [ebx + 0x335ea], eax
mov eax, dword [ebx + 0x335e6]
test eax, eax
je 0x54d21d
push eax
call fcn.00643cfc
add esp, 4
mov dword [ebx + 0x335e6], 0
mov eax, dword [ebx + 0x335ea]
shl eax, 5
push eax
call fcn.00643b70
add esp, 4
lea ecx, [esp + 0x50]
lea edx, [esp + 0x1d0]
mov dword [ebx + 0x335e6], eax
push 0x3e8
push 1
push ecx
mov cx, word [ebx + 0x335ea]
push edx
push 4
push ecx
mov ecx, dword [0x826818]
push eax
push 1
push 0x69c1a0
call fcn.004467b0
mov ecx, dword [0x826818]
push eax
call fcn.0044a8e0
movsx edx, ax
mov ecx, 0x60ae0
xor eax, eax
lea edi, [ebx + 0x335ee]
mov dword [ebx + 0x335ea], edx
push 1
push 4
rep stosd dword es:[edi], eax
mov ecx, dword [0x826818]
push 1
push 0x69c1a0
call fcn.004467b0
mov ecx, dword [0x826818]
push eax
call fcn.00448f10
mov esi, eax
shl eax, 5
push eax
call fcn.00643b70
add esp, 4
lea ecx, [esp + 0x50]
lea edx, [esp + 0x1d0]
mov edi, eax
push 0x3e8
push 1
push ecx
mov ecx, dword [0x826818]
push edx
push 4
push esi
push edi
push 1
push 0x69c1a0
call fcn.004467b0
mov ecx, dword [0x826818]
push eax
call fcn.0044a8e0
movsx eax, ax
xor edx, edx
test eax, eax
jle 0x54d30f
mov esi, dword [ebx + 0x335de]
mov ecx, edi
cmp dword [ecx], esi
jge 0x54d30f
inc edx
add ecx, 0x20
cmp edx, eax
jl 0x54d303
xor ecx, ecx
test eax, eax
jle 0x54d329
mov ebp, dword [ebx + 0x335e2]
mov esi, edi
cmp dword [esi], ebp
jge 0x54d329
inc ecx
add esi, 0x20
cmp ecx, eax
jl 0x54d31d
cmp edx, eax
jge 0x54d353
cmp ecx, eax
jge 0x54d353
cmp edx, ecx
jg 0x54d363
fld qword [esp + 0x24]
mov eax, edx
sub ecx, edx
shl eax, 5
inc ecx
lea eax, [eax + edi + 0x14]
fadd dword [eax]
add eax, 0x20
dec ecx
jne 0x54d345
fstp qword [esp + 0x24]
jmp 0x54d363
mov dword [esp + 0x24], 0x40000000
mov dword [esp + 0x28], 0x415d32ec
test edi, edi
je 0x54d370
push edi
call fcn.00643cfc
add esp, 4
mov ecx, dword [0x826818]
push 1
push 4
push 0
push 0x69c1a8
call fcn.004467b0
mov ecx, dword [0x826818]
push eax
call fcn.00448f10
mov esi, eax
mov ecx, esi
shl ecx, 5
push ecx
call fcn.00643b70
add esp, 4
mov ebp, eax
lea edx, [esp + 0x50]
mov ecx, dword [0x826818]
push 0x3e8
push 1
lea eax, [esp + 0x1d8]
push edx
push eax
push 4
push esi
push ebp
push 0
push 0x69c1a8
mov dword [esp + 0x38], ebp
call fcn.004467b0
mov ecx, dword [0x826818]
push eax
call fcn.0044a8e0
movsx ecx, ax
xor edx, edx
test ecx, ecx
jle 0x54d3fb
mov esi, dword [ebx + 0x335de]
mov eax, ebp
cmp dword [eax], esi
jge 0x54d3fb
inc edx
add eax, 0x20
cmp edx, ecx
jl 0x54d3ef
xor eax, eax
test ecx, ecx
jle 0x54d415
mov edi, dword [ebx + 0x335e2]
mov esi, ebp
cmp dword [esi], edi
jge 0x54d415
inc eax
add esi, 0x20
cmp eax, ecx
jl 0x54d409
cmp edx, ecx
jge 0x54d43f
cmp eax, ecx
jge 0x54d43f
cmp edx, eax
jg 0x54d44f
fld qword [esp + 0x34]
mov ecx, edx
sub eax, edx
shl ecx, 5
inc eax
lea ecx, [ecx + ebp + 0x14]
fadd dword [ecx]
add ecx, 0x20
dec eax
jne 0x54d431
fstp qword [esp + 0x34]
jmp 0x54d44f
mov dword [esp + 0x34], 0x40000000
mov dword [esp + 0x38], 0x415d32ec
xor esi, esi
cmp ebp, esi
je 0x54d464
push ebp
call fcn.00643cfc
add esp, 4
xor ebp, ebp
mov dword [esp + 0x14], ebp
mov edx, dword [ebx + 0x14]
push 1
push 0x69daec
push edx
lea ecx, [esp + 0x88]
call fcn.0054bf20
push esi
push 0x69dae0
lea ecx, [esp + 0x84]
mov dword [esp + 0x278], esi
call fcn.0054c3e0
mov eax, dword [ebx + 0xd2]
push 1
push eax
push esi
lea ecx, [esp + 0x88]
call fcn.0054c7d0
push 3
lea ecx, [esp + 0x80]
call fcn.0054c860
mov dword [0x8267f8], 1
mov eax, dword [ebx + 0xd2]
cmp eax, esi
mov dword [esp + 0x30], esi
jle 0x54ddae
mov eax, esi
mov ecx, 3
cdq
idiv ecx
test edx, edx
jne 0x54d513
mov dx, word [ebx + esi*2 + 0x10e]
mov ecx, dword [0x826818]
push edx
call fcn.004466b0
add eax, 0x18
push eax
lea eax, [esp + 0x80]
push eax
call fcn.0054c990
add esp, 8
lea ecx, [esp + 0x7c]
call fcn.0054c820
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
test edx, edx
jne 0x54d53e
push 1
lea ecx, [esp + 0x80]
call fcn.0054cb70
mov eax, dword [esp + 0xbc]
test eax, eax
jne 0x54dd94
movsx edi, word [ebx + esi*2 + 0x10e]
cmp edi, 0x2710
jge 0x54dd7f
mov ecx, dword [0x826818]
push edi
call fcn.004466b0
test eax, eax
mov dword [esp + 0x2c], eax
je 0x54dd7f
mov ecx, dword [0x826818]
push 1
push 4
push eax
call fcn.00448f10
test ebp, ebp
mov esi, eax
je 0x54d589
push ebp
call fcn.00643cfc
add esp, 4
mov edx, esi
shl edx, 5
push edx
call fcn.00643b70
mov ebp, eax
mov eax, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x14], ebp
mov ecx, dword [eax + 0x335e2]
mov edx, dword [eax + 0x335de]
mov eax, dword [esp + 0x2c]
push 1
push 4
push ecx
mov ecx, dword [0x826818]
push edx
push esi
push ebp
push eax
call fcn.004492a0
mov ecx, dword [esp + 0x18]
push 1
movsx ebx, ax
mov edx, dword [ecx + 0x335e2]
mov ecx, dword [esp + 0x30]
push 4
push edx
lea eax, [ebx + 6]
push 0
push eax
push ebp
push ecx
mov ecx, dword [0x826818]
call fcn.004492a0
movsx esi, ax
test esi, esi
jle 0x54d61a
mov eax, dword [0x6adca8]
test eax, eax
je 0x54d61a
mov eax, dword [esp + 0x2c]
mov ecx, dword [0x826818]
push 4
push 1
lea edx, [esi - 1]
push esi
push edx
push 0
push ebp
push eax
call fcn.00447b60
xor edx, edx
test esi, esi
mov dword [esp + 0x1c], edx
jle 0x54d649
mov ecx, dword [esp + 0x18]
mov eax, ebp
mov ecx, dword [ecx + 0x335de]
cmp dword [eax], ecx
jge 0x54d63c
inc edx
add eax, 0x20
cmp edx, esi
jl 0x54d630
test edx, edx
mov dword [esp + 0x1c], edx
jle 0x54d649
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
xor ebp, ebp
test esi, esi
jle 0x54d669
mov ecx, dword [edx + 0x335e2]
mov eax, dword [esp + 0x14]
cmp dword [eax], ecx
jge 0x54d669
inc ebp
add eax, 0x20
cmp ebp, esi
jl 0x54d65d
mov eax, dword [esp + 0x14]
mov ecx, ebp
shl ecx, 5
mov ecx, dword [ecx + eax]
cmp ecx, dword [edx + 0x335e2]
jle 0x54d682
test ebp, ebp
jle 0x54d682
dec ebp
mov ecx, dword [esp + 0x1c]
cmp ecx, esi
jl 0x54d691
lea ecx, [esi - 1]
mov dword [esp + 0x1c], ecx
cmp ebp, esi
jl 0x54d698
lea ebp, [esi - 1]
test esi, esi
jle 0x54dc27
cmp ebx, 1
jl 0x54dc27
cmp esi, ebx
jle 0x54d6c5
shl ecx, 5
add eax, ecx
mov ecx, edi
shl ecx, 5
fld dword [eax + 0x10]
add ecx, edi
mov dword [esp + 0x4c], eax
lea esi, [edx + ecx*8]
jmp 0x54d70f
mov esi, ecx
shl esi, 5
fld dword [esi + eax + 0x10]
fcomp dword [0x65f998]
lea ebx, [esi + eax]
mov dword [esp + 0x4c], ebx
fnstsw ax
test ah, 1
je 0x54d702
lea eax, [ecx + 1]
cmp ebp, eax
jge 0x54d6eb
mov eax, ebp
mov ecx, edi
shl ecx, 5
add ecx, edi
shl eax, 5
lea esi, [edx + ecx*8]
mov edx, dword [esp + 0x14]
fld dword [eax + edx + 4]
jmp 0x54d70f
fld dword [ebx + 4]
mov eax, edi
shl eax, 5
add eax, edi
lea esi, [edx + eax*8]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
push ebp
fstp qword [esi + 0x335ee]
lea edi, [ecx + 1]
mov ecx, ebx
push edi
push edx
call fcn.0054f940
fstp qword [esi + 0x33606]
push ebp
push edi
mov edi, dword [esp + 0x1c]
mov ecx, ebx
push edi
call fcn.0054f9b0
fstp qword [esi + 0x3361e]
mov eax, ebp
shl eax, 5
add edi, eax
mov dword [esp + 0x20], edi
fld dword [edi + 0x10]
fcomp dword [0x65f998]
fnstsw ax
test ah, 1
je 0x54d785
lea eax, [ebp - 1]
xor edi, edi
xor ecx, ecx
cmp eax, edi
mov edx, dword [esp + 0x14]
setl cl
dec ecx
and eax, ecx
shl eax, 5
fld dword [eax + edx + 0x10]
fstp qword [esi + 0x33636]
jmp 0x54d794
mov eax, dword [esp + 0x20]
xor edi, edi
fld dword [eax + 0x10]
fstp qword [esi + 0x33636]
mov eax, dword [esi + 0x33636]
mov edx, 0x40000000
cmp eax, edx
mov ecx, 0x415d32ec
jne 0x54d7b0
cmp dword [esi + 0x3363a], ecx
je 0x54d7d4
cmp dword [esi + 0x335ee], edx
jne 0x54d7c0
cmp dword [esi + 0x335f2], ecx
je 0x54d7d4
fld qword [esi + 0x33636]
fsub qword [esi + 0x335ee]
fstp qword [esi + 0x3364e]
jmp 0x54d7e0
mov dword [esi + 0x3364e], edx
mov dword [esi + 0x33652], ecx
fld qword [esi + 0x335ee]
fcomp qword [0x665ef8]
fnstsw ax
test ah, 1
jne 0x54d84a
fld qword [esi + 0x33636]
fsub qword [esi + 0x335ee]
fst qword [esp + 0x3c]
fabs
fcomp qword [0x665ef8]
fnstsw ax
test ah, 1
jne 0x54d84a
cmp dword [esi + 0x335ee], edx
jne 0x54d822
cmp dword [esi + 0x335f2], ecx
je 0x54d84a
cmp dword [esi + 0x33636], edx
jne 0x54d832
cmp dword [esi + 0x3363a], ecx
je 0x54d84a
fld qword [esp + 0x3c]
fmul qword [0x663768]
fdiv qword [esi + 0x335ee]
fstp qword [esi + 0x3365a]
jmp 0x54d856
mov dword [esi + 0x3365a], edx
mov dword [esi + 0x3365e], ecx
cmp dword [esi + 0x33606], edx
jne 0x54d866
cmp dword [esi + 0x3360a], ecx
je 0x54d89a
cmp dword [esi + 0x3361e], edx
jne 0x54d876
cmp dword [esi + 0x33622], ecx
je 0x54d89a
cmp dword [esi + 0x335ee], edx
jne 0x54d886
cmp dword [esi + 0x335f2], ecx
je 0x54d89a
fld qword [esi + 0x33606]
fsub qword [esi + 0x3361e]
fstp qword [esi + 0x33666]
jmp 0x54d8a6
mov dword [esi + 0x33666], edx
mov dword [esi + 0x3366a], ecx
fld qword [esi + 0x335ee]
fcomp qword [0x665ef8]
fnstsw ax
test ah, 1
jne 0x54d920
fld qword [esi + 0x33606]
fsub qword [esi + 0x3361e]
fst qword [esp + 0x3c]
fabs
fcomp qword [0x665ef8]
fnstsw ax
test ah, 1
jne 0x54d920
cmp dword [esi + 0x33606], edx
jne 0x54d8e8
cmp dword [esi + 0x3360a], ecx
je 0x54d920
cmp dword [esi + 0x3361e], edx
jne 0x54d8f8
cmp dword [esi + 0x33622], ecx
je 0x54d920
cmp dword [esi + 0x335ee], edx
jne 0x54d908
cmp dword [esi + 0x335f2], ecx
je 0x54d920
fld qword [esp + 0x3c]
fmul qword [0x663768]
fdiv qword [esi + 0x335ee]
fstp qword [esi + 0x33672]
jmp 0x54d92c
mov dword [esi + 0x33672], edx
mov dword [esi + 0x33676], ecx
mov ebx, dword [esp + 0x1c]
mov dword [esi + 0x3367a], 1
mov dword [esi + 0x3367e], edi
mov dword [esi + 0x33682], edi
lea ecx, [ebx + 1]
cmp ecx, ebp
jg 0x54d996
mov eax, dword [esp + 0x14]
mov edx, ecx
shl edx, 5
lea edi, [edx + eax + 0x18]
mov edx, ebp
sub edx, ecx
inc edx
mov eax, dword [edi]
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], eax
fild qword [esp + 0x74]
fcom qword [0x668268]
fnstsw ax
test ah, 0x40
jne 0x54d98c
fadd qword [esi + 0x3367e]
fstp qword [esi + 0x3367e]
jmp 0x54d98e
fstp st(0)
add edi, 0x20
dec edx
jne 0x54d95f
xor edi, edi
mov dword [esi + 0x33686], 2
mov dword [esi + 0x33696], edi
cmp ecx, ebp
mov dword [esi + 0x3369a], edi
jg 0x54d9e5
mov eax, dword [esp + 0x14]
mov edx, ecx
shl edx, 5
lea edi, [edx + eax + 0x14]
mov edx, ebp
sub edx, ecx
inc edx
fld dword [edi]
fcomp qword [0x668268]
fnstsw ax
test ah, 0x40
jne 0x54d9df
fld dword [edi]
fadd qword [esi + 0x33696]
fstp qword [esi + 0x33696]
add edi, 0x20
dec edx
jne 0x54d9c2
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0x3369e], 3
mov al, byte [ecx + 0xec]
test al, al
jne 0x54da6e
fld qword [esp + 0x34]
fcomp qword [0x665ef8]
fnstsw ax
test ah, 1
jne 0x54dad3
fld qword [esp + 0x24]
fabs
fcomp qword [0x665ef8]
fnstsw ax
test ah, 1
jne 0x54dad3
fld qword [esp + 0x34]
fcomp qword [0x668268]
fnstsw ax
test ah, 0x40
jne 0x54dad3
cmp dword [esi + 0x33696], 0x40000000
jne 0x54da56
cmp dword [esi + 0x3369a], 0x415d32ec
je 0x54dad3
fld qword [esi + 0x33696]
fdiv qword [esp + 0x34]
fmul qword [0x663768]
fstp qword [esi + 0x336ae]
jmp 0x54dae7
fld qword [esp + 0x24]
fcomp qword [0x665ef8]
fnstsw ax
test ah, 1
jne 0x54dad3
fld qword [esp + 0x24]
fabs
fcomp qword [0x665ef8]
fnstsw ax
test ah, 1
jne 0x54dad3
fld qword [esp + 0x24]
fcomp qword [0x668268]
fnstsw ax
test ah, 0x40
jne 0x54dad3
cmp dword [esi + 0x33696], 0x40000000
jne 0x54dabb
cmp dword [esi + 0x3369a], 0x415d32ec
je 0x54dad3
fld qword [esi + 0x33696]
fdiv qword [esp + 0x24]
fmul qword [0x663768]
fstp qword [esi + 0x336ae]
jmp 0x54dae7
mov dword [esi + 0x336ae], 0x40000000
mov dword [esi + 0x336b2], 0x415d32ec
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x48], edx
fld dword [esp + 0x48]
fmul dword [0x668130]
fcomp dword [0x663770]
fnstsw ax
test ah, 0x41
jne 0x54db25
fld qword [esi + 0x3367e]
mov eax, edx
push 4
push eax
push ecx
fstp dword [esp]
push ecx
call fcn.00472ec0
fstp qword [esi + 0x336c6]
add esp, 0x10
jmp 0x54db33
xor eax, eax
mov dword [esi + 0x336c6], eax
mov dword [esi + 0x336ca], eax
mov eax, dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x70], edx
mov ecx, dword [eax + 0x38]
mov edx, ebx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x20]
fild qword [esp + 0x54]
mov edi, dword [ecx + 0x18]
add ecx, 0xfffffff8
mov dword [esp + 0x6c], edi
lea edi, [ebp - 1]
fild qword [esp + 0x6c]
add eax, 0x18
mov ebp, 4
test edx, edx
jl 0x54db83
mov ebx, dword [eax]
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], ebx
fild qword [esp + 0x5c]
faddp st(2)
test edi, edi
jl 0x54db99
mov ebx, dword [ecx]
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], ebx
fiadd dword [esp + 0x64]
sub eax, 0x20
sub ecx, 0x20
dec edx
dec edi
dec ebp
jne 0x54db6b
fld st(1)
fcomp dword [0x65f998]
fnstsw ax
test ah, 1
jne 0x54dc0a
fcom dword [0x65f998]
fnstsw ax
test ah, 1
jne 0x54dc0a
fld st(0)
fsub st(2)
fst dword [esp + 0x20]
fabs
fcomp qword [0x665ef8]
fnstsw ax
test ah, 1
jne 0x54dc0a
fcomp qword [0x668268]
fnstsw ax
test ah, 0x40
jne 0x54dc0c
fcom qword [0x668268]
fnstsw ax
test ah, 0x40
jne 0x54dc0c
fld dword [esp + 0x20]
fmul qword [0x663768]
fxch st(1)
fdivp st(1)
fstp qword [esi + 0x336de]
jmp 0x54dd73
fstp st(0)
mov dword [esi + 0x336de], 0x40000000
mov dword [esi + 0x336e2], 0x415d32ec
fstp st(0)
jmp 0x54dd73
mov eax, edi
mov ecx, 0x40000000
shl eax, 5
add eax, edi
lea eax, [edx + eax*8]
mov edx, 0x415d32ec
mov dword [eax + 0x335fa], ecx
mov dword [eax + 0x335fe], edx
mov dword [eax + 0x335ee], ecx
mov dword [eax + 0x335f2], edx
mov dword [eax + 0x33612], ecx
mov dword [eax + 0x33616], edx
mov dword [eax + 0x33606], ecx
mov dword [eax + 0x3360a], edx
mov dword [eax + 0x3362a], ecx
mov dword [eax + 0x3362e], edx
mov dword [eax + 0x3361e], ecx
mov dword [eax + 0x33622], edx
mov dword [eax + 0x33642], ecx
mov dword [eax + 0x33646], edx
mov dword [eax + 0x33636], ecx
mov dword [eax + 0x3363a], edx
mov dword [eax + 0x3365a], ecx
mov dword [eax + 0x3365e], edx
mov dword [eax + 0x3364e], ecx
mov dword [eax + 0x33652], edx
mov dword [eax + 0x33672], ecx
mov dword [eax + 0x33676], edx
mov dword [eax + 0x33666], ecx
mov dword [eax + 0x3366a], edx
mov dword [eax + 0x3368a], ecx
mov dword [eax + 0x3368e], edx
mov dword [eax + 0x3367e], ecx
mov dword [eax + 0x33682], edx
mov dword [eax + 0x336a2], ecx
mov dword [eax + 0x336a6], edx
mov dword [eax + 0x33696], ecx
mov dword [eax + 0x3369a], edx
mov dword [eax + 0x336ba], ecx
mov dword [eax + 0x336be], edx
mov dword [eax + 0x336ae], ecx
mov dword [eax + 0x336b2], edx
mov dword [eax + 0x336d2], ecx
mov dword [eax + 0x336d6], edx
mov dword [eax + 0x336c6], ecx
mov dword [eax + 0x336ca], edx
mov dword [eax + 0x336ea], ecx
mov dword [eax + 0x336ee], edx
mov dword [eax + 0x336de], ecx
mov dword [eax + 0x336e2], edx
mov dword [eax + 0x33702], ecx
mov dword [eax + 0x33706], edx
mov dword [eax + 0x336f6], ecx
mov dword [eax + 0x336fa], edx
mov dword [eax + 0x3371a], ecx
mov dword [eax + 0x3371e], edx
mov dword [eax + 0x3370e], ecx
mov dword [eax + 0x33712], edx
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x14]
mov eax, dword [ebx + 0xd2]
inc esi
cmp esi, eax
mov dword [esp + 0x30], esi
jl 0x54d4d4
jmp 0x54ddae
mov ecx, dword [ebx + 0x14]
push 0
push 0
push 0x40
mov edx, dword [ecx + 0x20]
push 0x69dac4
push edx
call fcn.00471ac0
add esp, 0x14
test ebp, ebp
mov dword [0x8267f8], 0
je 0x54ddc5
push ebp
call fcn.00643cfc
add esp, 4
lea ecx, [esp + 0x7c]
mov dword [esp + 0x270], 0xffffffff
call fcn.0054c050
mov ecx, dword [esp + 0x268]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret