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

Disassembly:
sub esp, 0x13c
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x1dac0]
test eax, eax
je 0x545b9c
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 1
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 4
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0
push 0xe
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 0x89
push eax
call dword [edx + 0xe4]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 9
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0x142
push eax
call dword [edx + 0x164]
mov eax, dword [ebx + 0x1dabc]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [ebx + 0x1dac4], ecx
je 0x545b3a
push ebp
push esi
push edi
lea esp, [esp]
mov eax, dword [ebx + 0xd8]
xor ebp, ebp
cmp eax, ebp
mov eax, dword [ebx + 0x1dac4]
lea ecx, [eax + 8]
je 0x54532f
mov eax, dword [ecx]
fld dword [eax + 0x5c]
fadd dword [eax + 0x68]
fstp dword [esp + 0x20]
fld dword [eax + 0x60]
fadd dword [eax + 0x6c]
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
fld dword [eax + 0x64]
fadd dword [eax + 0x70]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jmp 0x545348
mov edx, dword [ecx]
add edx, 0x5c
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x18], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x1c], edx
mov eax, dword [ecx]
fld dword [eax + 0x10]
mov ecx, dword [ebx + 0x1dac4]
fmul dword [0x6a95b8]
mov dword [esp + 0x34], 0
fld st(0)
fchs
fst dword [esp + 0x2c]
fld st(1)
fstp dword [esp + 0x30]
mov esi, dword [ecx + 8]
fld dword [esi + 0x24]
add esi, 0x24
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x54538f
mov dword [esp + 0x10], 0xff
jmp 0x5453bb
fld dword [esi]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x5453a4
mov dword [esp + 0x10], ebp
jmp 0x5453bb
fld dword [esi]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x5453d2
mov ebp, 0xff
jmp 0x5453f8
fld dword [esi + 4]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jnp 0x5453f8
fld dword [esi + 4]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x54540f
mov edi, 0xff
jmp 0x545439
fld dword [esi + 8]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x545423
xor edi, edi
jmp 0x545439
fld dword [esi + 8]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x545450
mov eax, 0xff
jmp 0x545478
fld dword [esi + 0xc]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x545464
xor eax, eax
jmp 0x545478
fld dword [esi + 0xc]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov edx, dword [esp + 0x10]
fld st(1)
shl eax, 8
fstp dword [esp + 0x44]
or eax, edx
fld st(1)
mov edx, dword [ebx + 0x1dac4]
fstp dword [esp + 0x48]
shl eax, 8
or eax, ebp
shl eax, 8
or eax, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], 0
mov esi, dword [edx + 8]
fld dword [esi + 0x24]
add esi, 0x24
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x5454c9
mov dword [esp + 0x10], 0xff
jmp 0x5454f9
fld dword [esi]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x5454e2
mov dword [esp + 0x10], 0
jmp 0x5454f9
fld dword [esi]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x545510
mov ebp, 0xff
jmp 0x54553a
fld dword [esi + 4]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x545524
xor ebp, ebp
jmp 0x54553a
fld dword [esi + 4]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x545551
mov edi, 0xff
jmp 0x54557b
fld dword [esi + 8]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x545565
xor edi, edi
jmp 0x54557b
fld dword [esi + 8]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x545592
mov eax, 0xff
jmp 0x5455ba
fld dword [esi + 0xc]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x5455a6
xor eax, eax
jmp 0x5455ba
fld dword [esi + 0xc]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov edx, dword [esp + 0x10]
fst dword [esp + 0x5c]
shl eax, 8
fst dword [esp + 0x60]
or eax, edx
shl eax, 8
or eax, ebp
shl eax, 8
or eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x1dac4]
mov dword [esp + 0x64], 0
mov esi, dword [eax + 8]
fld dword [esi + 0x24]
add esi, 0x24
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x545607
mov dword [esp + 0x10], 0xff
jmp 0x545637
fld dword [esi]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x545620
mov dword [esp + 0x10], 0
jmp 0x545637
fld dword [esi]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x54564e
mov ebp, 0xff
jmp 0x545678
fld dword [esi + 4]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x545662
xor ebp, ebp
jmp 0x545678
fld dword [esi + 4]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x54568f
mov edi, 0xff
jmp 0x5456b9
fld dword [esi + 8]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x5456a3
xor edi, edi
jmp 0x5456b9
fld dword [esi + 8]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x5456d0
mov eax, 0xff
jmp 0x5456f8
fld dword [esi + 0xc]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x5456e4
xor eax, eax
jmp 0x5456f8
fld dword [esi + 0xc]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov edx, dword [esp + 0x10]
fxch st(1)
mov ecx, dword [ebx + 0x1dac4]
fstp dword [esp + 0x74]
shl eax, 8
or eax, edx
fstp dword [esp + 0x78]
shl eax, 8
or eax, ebp
shl eax, 8
or eax, edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x7c], 0
mov esi, dword [ecx + 8]
fld dword [esi + 0x24]
add esi, 0x24
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x545747
mov dword [esp + 0x10], 0xff
jmp 0x545777
fld dword [esi]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x545760
mov dword [esp + 0x10], 0
jmp 0x545777
fld dword [esi]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x54578e
mov ebp, 0xff
jmp 0x5457b8
fld dword [esi + 4]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x5457a2
xor ebp, ebp
jmp 0x5457b8
fld dword [esi + 4]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x5457cf
mov edi, 0xff
jmp 0x5457f9
fld dword [esi + 8]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x5457e3
xor edi, edi
jmp 0x5457f9
fld dword [esi + 8]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 1
jne 0x545810
mov eax, 0xff
jmp 0x545838
fld dword [esi + 0xc]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 0x41
jp 0x545824
xor eax, eax
jmp 0x545838
fld dword [esi + 0xc]
fmul dword [0x6a961c]
fadd dword [0x6a95b8]
call fcn.005ba9a8
mov edx, dword [esp + 0x10]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ebp
shl eax, 8
or eax, edi
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x164]
test eax, eax
je 0x5458a9
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 2
push 1
push 0
push eax
call dword [edx + 0x114]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 2
push 0
push eax
call dword [ecx + 0x114]
mov dword [esp + 0x3c], 0xbf800000
mov dword [esp + 0x6c], 0xbf800000
mov dword [esp + 0x70], 0x40000000
mov dword [esp + 0x88], 0x40000000
jmp 0x5458cc
mov dword [esp + 0x3c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0x3f800000
mov dword [esp + 0x88], 0x3f800000
mov eax, dword [ebx + 0x128]
test eax, eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], 0x3f800000
mov dword [esp + 0x58], 0
mov dword [esp + 0x84], 0x3f800000
je 0x5459da
mov edx, dword [ebx + 0x1dac4]
mov eax, dword [edx + 8]
fld dword [eax + 0x18]
mov eax, dword [ebx + 0x130]
dec eax
je 0x54599a
dec eax
je 0x54595d
dec eax
jne 0x5459d8
fld st(0)
lea eax, [esp + 0x2c]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld st(0)
add eax, 0x18
dec ecx
fmul dword [eax - 0x14]
fld dword [esp + 0x10]
fmul dword [eax - 0x18]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax - 0x14]
fld st(2)
fmul dword [eax - 0x18]
fsubp st(1)
fstp dword [eax - 0x14]
fstp dword [eax - 0x18]
jne 0x545933
jmp 0x5459d8
fld st(0)
lea eax, [esp + 0x34]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld st(0)
add eax, 0x18
dec ecx
fmul dword [eax - 0x20]
fld dword [esp + 0x10]
fmul dword [eax - 0x18]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax - 0x20]
fld st(2)
fmul dword [eax - 0x18]
fsubp st(1)
fstp dword [eax - 0x20]
fstp dword [eax - 0x18]
jne 0x545970
jmp 0x5459d8
fld st(0)
lea eax, [esp + 0x30]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
lea ecx, [ecx]
fld st(0)
add eax, 0x18
dec ecx
fmul dword [eax - 0x14]
fld dword [esp + 0x10]
fmul dword [eax - 0x18]
faddp st(1)
fld dword [esp + 0x10]
fmul dword [eax - 0x14]
fld st(2)
fmul dword [eax - 0x18]
fsubp st(1)
fstp dword [eax - 0x14]
fstp dword [eax - 0x18]
jne 0x5459b0
fstp st(0)
mov eax, dword [ebx + 0x108]
dec eax
lea edi, [esp + 0x8c]
mov ecx, 0x10
je 0x545a0a
dec eax
je 0x545a03
dec eax
je 0x5459fc
mov esi, 0x21f409c
jmp 0x545a0f
mov esi, 0x21f3fa0
jmp 0x545a0f
mov esi, 0x21f411c
jmp 0x545a0f
mov esi, 0x21f40dc
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x14]
push ecx
push 0x21f3fa0
mov ecx, 0x21f3fa0
call fcn.0052be00
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
fld dword [0x6a867c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc4], ecx
mov ecx, dword [ebx + 0x1dac4]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xbc], edx
mov edx, dword [ecx + 8]
fld dword [edx + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x545ae5
mov eax, dword [ebx + 0x168]
dec eax
je 0x545a9f
dec eax
je 0x545a89
dec eax
jne 0x545ab3
mov eax, edx
mov ecx, dword [eax + 0x20]
push ecx
lea edx, [esp + 0xd0]
push edx
call fcn.005d31ec
jmp 0x545ab3
mov eax, dword [ecx + 8]
mov ecx, dword [eax + 0x20]
push ecx
lea edx, [esp + 0xd0]
push edx
call fcn.005d3149
jmp 0x545ab3
mov eax, dword [ecx + 8]
mov ecx, dword [eax + 0x20]
push ecx
lea edx, [esp + 0xd0]
push edx
call fcn.005d30a7
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0xd0]
push ecx
lea edx, [esp + 0x114]
push edx
call fcn.005d268c
mov ecx, 0x10
lea esi, [esp + 0x10c]
lea edi, [esp + 0x8c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
lea edx, [esp + 0x8c]
push edx
push pe_nt_image_headers32
push eax
call dword [ecx + 0xb0]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0x18
lea edx, [esp + 0x30]
push edx
push 2
push 5
push eax
call dword [ecx + 0x14c]
mov eax, dword [ebx + 0x1dac4]
mov ecx, dword [eax]
mov dword [ebx + 0x1dac4], ecx
mov eax, dword [ebx + 0x1dabc]
mov edx, ecx
cmp edx, eax
jne 0x5452e0
pop edi
pop esi
pop ebp
mov eax, dword [ebx + 0x164]
test eax, eax
je 0x545b6c
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 1
push 0
push eax
call dword [ecx + 0x114]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 2
push 0
push eax
call dword [edx + 0x114]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 9
push eax
call dword [ecx + 0xe4]
push 1
mov ecx, 0x21f3fa0
call fcn.0052c380
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 0xe
push eax
call dword [edx + 0xe4]
pop ebx
add esp, 0x13c
ret