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

Disassembly:
sub esp, 0x13c
push ebx
push esi
mov ebx, ecx
push edi
lea eax, [ebx + 0x44]
push eax
lea ecx, [ebx + 0x38]
push ecx
lea edx, [ebx + 0x2c]
push edx
mov ecx, 0x21f1c78
call fcn.00530ec0
mov ecx, dword [ebx + 0xf0]
test ecx, ecx
je 0x54b091
mov eax, dword [ebx + 0xf4]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x54b091
mov eax, dword [ebx + 0x104]
cmp eax, 0xdc
jge 0x54b0a3
mov ecx, dword [ebx + 0x1dac8]
imul eax, eax, 0x12c
mov edx, dword [ebx + 0xf0]
mov edi, dword [edx + ecx*4]
add eax, 0x21f7f78
mov esi, eax
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x54b061
mov ecx, esi
call fcn.00548840
test edi, edi
jl 0x54b074
cmp edi, dword [esi + 8]
jge 0x54b074
mov eax, dword [esi + 0x1c]
mov edi, dword [eax + edi*4]
test edi, edi
jne 0x54b088
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 0
push 0
push eax
call dword [ecx + 0x104]
jmp 0x54b0a3
mov ecx, edi
call fcn.0052d0f0
jmp 0x54b0a3
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 0
push 0
push eax
call dword [edx + 0x104]
mov edx, dword [ebx + 0xc8]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
shl edx, 5
mov edx, dword [edx + 0x6b7d44]
push edx
push 0x13
push eax
call dword [ecx + 0xe4]
mov edx, dword [ebx + 0xcc]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
shl edx, 5
mov edx, dword [edx + 0x6b7d44]
push edx
push 0x14
push eax
call dword [ecx + 0xe4]
mov eax, dword [ebx + 0x1dac0]
test eax, eax
je 0x54baaf
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 1
push 1
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 1
push 4
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 2
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 0
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 2
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 0
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 0
push 0xe
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 0
push 0x89
push eax
call dword [edx + 0xe4]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 1
push 9
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f1c70]
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 0x54ba4d
push ebp
mov eax, dword [ebx + 0xd8]
xor ebp, ebp
cmp eax, ebp
mov eax, dword [ebx + 0x1dac4]
lea ecx, [eax + 8]
je 0x54b243
mov eax, dword [ecx]
fld dword [eax + 0x68]
fadd dword [eax + 0x5c]
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 0x54b25c
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 [0x6a84d0]
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 [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b2a3
mov dword [esp + 0x10], 0xff
jmp 0x54b2cf
fld dword [esi]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b2b8
mov dword [esp + 0x10], ebp
jmp 0x54b2cf
fld dword [esi]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b2e6
mov ebp, 0xff
jmp 0x54b30c
fld dword [esi + 4]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jnp 0x54b30c
fld dword [esi + 4]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b323
mov edi, 0xff
jmp 0x54b34d
fld dword [esi + 8]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b337
xor edi, edi
jmp 0x54b34d
fld dword [esi + 8]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b364
mov eax, 0xff
jmp 0x54b38c
fld dword [esi + 0xc]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b378
xor eax, eax
jmp 0x54b38c
fld dword [esi + 0xc]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
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 [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b3dd
mov dword [esp + 0x10], 0xff
jmp 0x54b40d
fld dword [esi]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b3f6
mov dword [esp + 0x10], 0
jmp 0x54b40d
fld dword [esi]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b424
mov ebp, 0xff
jmp 0x54b44e
fld dword [esi + 4]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b438
xor ebp, ebp
jmp 0x54b44e
fld dword [esi + 4]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b465
mov edi, 0xff
jmp 0x54b48f
fld dword [esi + 8]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b479
xor edi, edi
jmp 0x54b48f
fld dword [esi + 8]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b4a6
mov eax, 0xff
jmp 0x54b4ce
fld dword [esi + 0xc]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b4ba
xor eax, eax
jmp 0x54b4ce
fld dword [esi + 0xc]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
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 [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b51b
mov dword [esp + 0x10], 0xff
jmp 0x54b54b
fld dword [esi]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b534
mov dword [esp + 0x10], 0
jmp 0x54b54b
fld dword [esi]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b562
mov ebp, 0xff
jmp 0x54b58c
fld dword [esi + 4]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b576
xor ebp, ebp
jmp 0x54b58c
fld dword [esi + 4]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b5a3
mov edi, 0xff
jmp 0x54b5cd
fld dword [esi + 8]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b5b7
xor edi, edi
jmp 0x54b5cd
fld dword [esi + 8]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b5e4
mov eax, 0xff
jmp 0x54b60c
fld dword [esi + 0xc]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b5f8
xor eax, eax
jmp 0x54b60c
fld dword [esi + 0xc]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
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 [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b65b
mov dword [esp + 0x10], 0xff
jmp 0x54b68b
fld dword [esi]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b674
mov dword [esp + 0x10], 0
jmp 0x54b68b
fld dword [esi]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov dword [esp + 0x10], eax
fld dword [esi + 4]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b6a2
mov ebp, 0xff
jmp 0x54b6cc
fld dword [esi + 4]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b6b6
xor ebp, ebp
jmp 0x54b6cc
fld dword [esi + 4]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov ebp, eax
fld dword [esi + 8]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b6e3
mov edi, 0xff
jmp 0x54b70d
fld dword [esi + 8]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b6f7
xor edi, edi
jmp 0x54b70d
fld dword [esi + 8]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
mov edi, eax
fld dword [esi + 0xc]
fcomp dword [0x6a8210]
fnstsw ax
test ah, 1
jne 0x54b724
mov eax, 0xff
jmp 0x54b74c
fld dword [esi + 0xc]
fcomp dword [0x6a75fc]
fnstsw ax
test ah, 0x41
jp 0x54b738
xor eax, eax
jmp 0x54b74c
fld dword [esi + 0xc]
fmul dword [0x6a8534]
fadd dword [0x6a84d0]
call fcn.005b8b18
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 0x54b7bd
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 2
push 1
push 0
push eax
call dword [edx + 0x114]
mov eax, dword [0x21f1c70]
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 0x54b7e0
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 0x54b8eb
mov edx, dword [ebx + 0x1dac4]
mov eax, dword [edx + 8]
fld dword [eax + 0x18]
mov eax, dword [ebx + 0x130]
dec eax
je 0x54b8ae
dec eax
je 0x54b871
dec eax
jne 0x54b8e9
fld st(0)
lea eax, [esp + 0x2c]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld dword [esp + 0x10]
add eax, 0x18
dec ecx
fmul dword [eax - 0x18]
fld st(1)
fmul dword [eax - 0x14]
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 0x54b847
jmp 0x54b8e9
fld st(0)
lea eax, [esp + 0x34]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld dword [esp + 0x10]
add eax, 0x18
dec ecx
fmul dword [eax - 0x18]
fld st(1)
fmul dword [eax - 0x20]
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 0x54b884
jmp 0x54b8e9
fld st(0)
lea eax, [esp + 0x30]
fcos
mov ecx, 4
fstp dword [esp + 0x10]
fsin
fld dword [esp + 0x10]
add eax, 0x18
dec ecx
fmul dword [eax - 0x18]
fld st(1)
fmul dword [eax - 0x14]
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 0x54b8c1
fstp st(0)
mov eax, dword [ebx + 0x108]
dec eax
lea edi, [esp + 0x8c]
mov ecx, 0x10
je 0x54b91b
dec eax
je 0x54b914
dec eax
je 0x54b90d
mov esi, 0x21f1d74
jmp 0x54b920
mov esi, 0x21f1c78
jmp 0x54b920
mov esi, 0x21f1df4
jmp 0x54b920
mov esi, 0x21f1db4
mov edx, dword [esp + 0x150]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x14]
push ecx
push edx
mov ecx, 0x21f1c78
call fcn.00531110
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
fld dword [0x6a75fc]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc0], ecx
mov ecx, dword [ebx + 0x1dac4]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc4], edx
mov eax, dword [ecx + 8]
fld dword [eax + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x54b9fa
mov eax, dword [ebx + 0x168]
dec eax
je 0x54b9b4
dec eax
je 0x54b99e
dec eax
jne 0x54b9c8
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x20]
push edx
lea eax, [esp + 0xd0]
push eax
call fcn.005d1018
jmp 0x54b9c8
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x20]
push edx
lea eax, [esp + 0xd0]
push eax
call fcn.005d0f75
jmp 0x54b9c8
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x20]
push edx
lea eax, [esp + 0xd0]
push eax
call fcn.005d0ed3
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0xd0]
push edx
lea eax, [esp + 0x114]
push eax
call fcn.005d04b8
mov ecx, 0x10
lea esi, [esp + 0x10c]
lea edi, [esp + 0x8c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
lea edx, [esp + 0x8c]
push edx
push pe_nt_image_headers32
push eax
call dword [ecx + 0xb0]
mov eax, dword [0x21f1c70]
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 0x54b1f4
pop ebp
mov eax, dword [ebx + 0x164]
test eax, eax
je 0x54ba7f
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 1
push 1
push 0
push eax
call dword [ecx + 0x114]
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 1
push 2
push 0
push eax
call dword [edx + 0x114]
mov eax, dword [0x21f1c70]
mov ecx, dword [eax]
push 2
push 9
push eax
call dword [ecx + 0xe4]
push 1
mov ecx, 0x21f1c78
call fcn.00531690
mov eax, dword [0x21f1c70]
mov edx, dword [eax]
push 1
push 0xe
push eax
call dword [edx + 0xe4]
pop edi
pop esi
pop ebx
add esp, 0x13c
ret 4