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

Disassembly:
sub esp, 0x1c
push ebx
push ebp
mov ebx, ecx
test dword [ebx + 0x14], 0x8000000
push esi
push edi
mov dword [esp + 0x24], 0x12
jne 0x54cff5
mov eax, dword [ebx + 0x138]
test byte [eax + 0x3c], 0x10
je 0x54ca32
mov dword [esp + 0x24], 0x22
mov eax, dword [ebx + 0x118]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x28], ebp
jle 0x54cfee
mov ecx, dword [ebx + 0x11c]
mov edx, dword [esp + 0x24]
mov dword [ecx + ebp + 0x38], edx
mov eax, dword [ebx + 0x11c]
add eax, ebp
push eax
mov ecx, 0x8b78a0
call fcn.00540940
test eax, eax
jne 0x54cfff
mov ecx, dword [ebx + 0x11c]
add ecx, ebp
push 0xc
push ecx
mov ecx, ebx
call fcn.0054e0e0
mov edx, dword [ebx + 0x11c]
mov ecx, dword [edx + ebp + 0x20]
test ecx, ecx
lea eax, [edx + ebp]
je 0x54cf69
mov edi, dword [eax + 4]
lea eax, [esp + 0x1c]
push eax
mov esi, ecx
push 2
mov ecx, edi
mov dword [esp + 0x1c], edi
call fcn.005472d0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x14]
shl ecx, 0x18
test eax, 0x800000
mov dword [esp + 0x1c], ecx
je 0x54ccfe
mov ecx, dword [ebx + 0x11c]
mov edi, dword [ecx + ebp + 8]
mov edx, dword [ecx + ebp + 0xc]
lea eax, [ecx + ebp]
xor ecx, ecx
test edi, edi
jle 0x54cb0d
add esi, 0x1c
lea eax, [edx + 0x28]
mov edx, dword [esp + 0x1c]
mov edi, dword [eax]
or edi, edx
mov dword [eax], edi
mov edx, edi
mov dword [esi - 4], edx
mov dword [esi], 0
mov edx, dword [ebx + 0x11c]
mov edi, dword [edx + ebp + 8]
add eax, 0x40
add esi, 0x40
inc ecx
cmp ecx, edi
jl 0x54cae3
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xa4]
mov esi, dword [eax + 0xa8]
xor ecx, ecx
cmp edx, ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ecx
jle 0x54cf69
add esi, 0x78
jmp 0x54cb40
mov eax, dword [esp + 0x14]
lea esp, [esp]
mov edi, dword [esp + 0x10]
xor edx, edx
test edi, edi
jle 0x54cba3
mov ecx, dword [eax + 0xa8]
add ecx, 0x78
fld dword [esi - 8]
fcomp dword [ecx - 8]
fnstsw ax
test ah, 0x44
jp 0x54cb90
fld dword [esi - 4]
fcomp dword [ecx - 4]
fnstsw ax
test ah, 0x44
jp 0x54cb90
fld dword [esi]
fcomp dword [ecx]
fnstsw ax
test ah, 0x44
jp 0x54cb90
fld dword [esi]
fcomp dword [ecx]
fnstsw ax
test ah, 0x44
jp 0x54cb90
inc edx
add ecx, 0x94
cmp edx, edi
jl 0x54cb53
jmp 0x54cba3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
inc eax
push eax
mov dword [esp + 0x1c], eax
call fcn.0054fc70
mov eax, dword [ebx + 0x11c]
mov edi, dword [esp + 0x18]
cmp edi, 3
mov ecx, dword [eax + ebp + 0x20]
lea edx, [eax + ebp]
mov eax, dword [edx + 0xc]
ja case.default.0x54cbc0
jmp dword [edi*4 + 0x54d00c]
xor edi, edi
cmp dword [edx + 8], edi
jle case.default.0x54cbc0
add ecx, 0x24
add eax, 0x30
fld dword [eax + 8]
add eax, 0x40
fmul dword [esi]
add ecx, 0x40
inc edi
fadd dword [esi - 8]
fstp dword [eax - 0x40]
mov edx, dword [eax - 0x40]
fld dword [esi + 4]
fmul dword [eax - 0x34]
fadd dword [esi - 4]
fstp dword [eax - 0x3c]
mov dword [ecx - 0x44], edx
mov edx, dword [eax - 0x3c]
mov dword [ecx - 0x40], edx
mov edx, dword [ebx + 0x11c]
cmp edi, dword [edx + ebp + 8]
jl 0x54cbd8
jmp case.default.0x54cbc0
xor edi, edi
cmp dword [edx + 8], edi
jle case.default.0x54cbc0
add ecx, 0x2c
add eax, 0x3c
fld dword [eax - 4]
add eax, 0x40
fmul dword [esi]
add ecx, 0x40
inc edi
fadd dword [esi - 8]
fstp dword [ecx - 0x44]
fld dword [esi + 4]
fmul dword [eax - 0x40]
fadd dword [esi - 4]
fstp dword [ecx - 0x40]
mov edx, dword [ebx + 0x11c]
cmp edi, dword [edx + ebp + 8]
jl 0x54cc24
jmp case.default.0x54cbc0
xor edi, edi
cmp dword [edx + 8], edi
jle case.default.0x54cbc0
add ecx, 0x34
add eax, 0x3c
fld dword [eax - 4]
add eax, 0x40
fmul dword [esi]
add ecx, 0x40
inc edi
fadd dword [esi - 8]
fstp dword [ecx - 0x44]
fld dword [esi + 4]
fmul dword [eax - 0x40]
fadd dword [esi - 4]
fstp dword [ecx - 0x40]
mov edx, dword [ebx + 0x11c]
cmp edi, dword [edx + ebp + 8]
jl 0x54cc60
jmp case.default.0x54cbc0
xor edi, edi
cmp dword [edx + 8], edi
jle case.default.0x54cbc0
add ecx, 0x3c
add eax, 0x3c
lea esp, [esp]
fld dword [eax - 4]
add eax, 0x40
fmul dword [esi]
add ecx, 0x40
inc edi
fadd dword [esi - 8]
fstp dword [ecx - 0x44]
fld dword [esi + 4]
fmul dword [eax - 0x40]
fadd dword [esi - 4]
fstp dword [ecx - 0x40]
mov edx, dword [ebx + 0x11c]
cmp edi, dword [edx + ebp + 8]
jl 0x54cca0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
add ecx, 0x94
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xa4]
add esi, 0x94
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x54cb38
jmp 0x54cf69
mov edx, dword [ebx + 0x11c]
mov eax, dword [edx + ebp + 0xc]
add edx, ebp
xor ecx, ecx
cmp dword [edx + 8], ecx
jle 0x54cd5a
mov edx, dword [eax]
mov dword [esi], edx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov edx, dword [eax + 8]
mov dword [esi + 8], edx
mov edx, dword [eax + 0xc]
mov dword [esi + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [esi + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0x1c]
or dword [eax + 0x18], edx
mov edx, dword [eax + 0x18]
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], 0
mov edx, dword [ebx + 0x11c]
add eax, 0x30
add esi, 0x40
inc ecx
cmp ecx, dword [edx + ebp + 8]
jl 0x54cd11
mov eax, dword [edi + 0xa4]
test eax, eax
mov esi, dword [edi + 0xa8]
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x10], 0
jle 0x54cf69
add esi, 0x70
mov ecx, dword [esp + 0x10]
xor edi, edi
test ecx, ecx
jle 0x54cded
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xa8]
add edx, 0x74
lea esp, [esp]
fld dword [esi]
fcomp dword [edx - 4]
fnstsw ax
test ah, 0x44
jp 0x54cdd2
fld dword [esi + 4]
fcomp dword [edx]
fnstsw ax
test ah, 0x44
jp 0x54cdd2
fld dword [esi + 8]
fcomp dword [edx + 4]
fnstsw ax
test ah, 0x44
jp 0x54cdd2
fld dword [esi + 0xc]
fcomp dword [edx + 8]
fnstsw ax
test ah, 0x44
jnp 0x54cddf
inc edi
add edx, 0x94
cmp edi, ecx
jl 0x54cda0
jmp 0x54cded
mov ecx, dword [esp + 0x18]
push edi
call fcn.0054fc70
mov ecx, dword [esp + 0x10]
cmp edi, ecx
jne case.default.0x54ce21
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
inc edi
push edi
mov dword [esp + 0x24], edi
call fcn.0054fc70
cmp edi, 3
mov ecx, dword [ebx + 0x11c]
mov eax, dword [ecx + ebp + 0xc]
lea edx, [ecx + ebp]
mov ecx, dword [edx + 0x20]
ja case.default.0x54ce21
jmp dword [edi*4 + 0x54d01c]
xor edi, edi
cmp dword [edx + 8], edi
jle case.default.0x54ce21
add ecx, 0x24
add eax, 0x20
lea esp, [esp]
fld dword [eax + 8]
add eax, 0x30
fmul dword [esi + 8]
add ecx, 0x40
inc edi
fadd dword [esi]
fstp dword [eax - 0x30]
mov edx, dword [eax - 0x30]
fld dword [eax - 0x24]
fmul dword [esi + 0xc]
fadd dword [esi + 4]
fstp dword [eax - 0x2c]
mov dword [ecx - 0x44], edx
mov edx, dword [eax - 0x2c]
mov dword [ecx - 0x40], edx
mov edx, dword [ebx + 0x11c]
cmp edi, dword [edx + ebp + 8]
jl 0x54ce40
jmp case.default.0x54ce21
xor edi, edi
cmp dword [edx + 8], edi
jle case.default.0x54ce21
add ecx, 0x2c
add eax, 0x2c
lea esp, [esp]
fld dword [eax - 4]
add eax, 0x30
fmul dword [esi + 8]
add ecx, 0x40
inc edi
fadd dword [esi]
fstp dword [ecx - 0x44]
fld dword [esi + 0xc]
fmul dword [eax - 0x30]
fadd dword [esi + 4]
fstp dword [ecx - 0x40]
mov edx, dword [ebx + 0x11c]
cmp edi, dword [edx + ebp + 8]
jl 0x54ce90
jmp case.default.0x54ce21
xor edi, edi
cmp dword [edx + 8], edi
jle case.default.0x54ce21
add ecx, 0x34
add eax, 0x2c
lea esp, [esp]
fld dword [eax - 4]
add eax, 0x30
fmul dword [esi + 8]
add ecx, 0x40
inc edi
fadd dword [esi]
fstp dword [ecx - 0x44]
fld dword [eax - 0x30]
fmul dword [esi + 0xc]
fadd dword [esi + 4]
fstp dword [ecx - 0x40]
mov edx, dword [ebx + 0x11c]
cmp edi, dword [edx + ebp + 8]
jl 0x54ced0
jmp case.default.0x54ce21
xor edi, edi
cmp dword [edx + 8], edi
jle case.default.0x54ce21
add ecx, 0x3c
add eax, 0x2c
lea esp, [esp]
fld dword [eax - 4]
add eax, 0x30
fmul dword [esi + 8]
add ecx, 0x40
inc edi
fadd dword [esi]
fstp dword [ecx - 0x44]
fld dword [esi + 0xc]
fmul dword [eax - 0x30]
fadd dword [esi + 4]
fstp dword [ecx - 0x40]
mov edx, dword [ebx + 0x11c]
cmp edi, dword [edx + ebp + 8]
jl 0x54cf10
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
add ecx, 0x94
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xa4]
add esi, 0x94
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x54cd85
mov edx, dword [ebx + 0x11c]
mov edi, dword [edx + ebp + 0x28]
test edi, edi
lea eax, [edx + ebp]
je 0x54cf90
mov ecx, dword [eax + 0x10]
mov esi, dword [eax + 0x14]
shl ecx, 1
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x8b8f28]
mov edx, dword [ecx + 0xf8]
mov ecx, dword [ebx + 0x11c]
push 0
push edx
add ecx, ebp
call fcn.0055d720
mov eax, dword [ebx + 0x11c]
push 0xc
add eax, ebp
push eax
mov ecx, ebx
call fcn.0054e0f0
mov ecx, dword [ebx + 0x11c]
mov edi, dword [ecx + ebp + 0x38]
lea eax, [ecx + ebp + 0x38]
or edi, 0x200
mov dword [eax], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx + 0x118]
inc eax
add ebp, 0x40
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x54ca46
or dword [ebx + 0x14], 0x9000020
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x1c
ret