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

Disassembly:
sub esp, 0x1c
cmp dword [0x9bed28], 0
push esi
mov esi, dword [esp + 0x24]
je 0x5c2c15
cmp dword [0x9bed18], 0
jne 0x5c2c15
cmp edx, esi
push edi
jle 0x5c28dd
mov edi, edx
mov edx, esi
mov esi, edi
cmp eax, ecx
jle 0x5c28e7
mov edi, eax
mov eax, ecx
mov ecx, edi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
push 0xb15f84
push eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ecx
call fcn.0057d7aa
mov ecx, dword [esp + 0x1c]
add esp, 8
cmp ecx, dword [esp + 0x1c]
je 0x5c2c0d
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x20]
je 0x5c2c0d
push ebx
push ebp
call fcn.0057c526
cmp dword [0x9bed28], 0
mov ebp, 1
je 0x5c2970
cmp dword [0x9feb00], 0
jne 0x5c294c
cmp dword [0xa8e5b8], 0
je 0x5c2970
call fcn.0057e664
cmp dword [0x9feb00], 0
mov dword [0xa05cb0], ebp
je 0x5c2966
mov dword [0xa05cac], ebp
mov dword [0x9feb00], 0
push 0x20
push 0
push 0
call fcn.005b6a20
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
push eax
call fcn.0057de67
movzx ecx, byte [0x9beefa]
imul ecx, dword [esp + 0x20]
mov eax, 0x80808081
mul ecx
mov ecx, dword [0x9beef8]
shr edx, 7
mov edi, edx
movzx edx, ch
imul edx, dword [esp + 0x24]
mov eax, 0x80808081
mul edx
shr edx, 7
shl edi, 8
or edi, edx
movzx edx, cl
imul edx, dword [esp + 0x28]
mov ebx, dword [0xb160a8]
mov eax, 0x80808081
mul edx
shl edi, 8
shr edx, 7
or edi, edx
and ecx, 0xff000000
add esp, 0x10
or edi, ecx
cmp dword [0xa05cac], 0
jne 0x5c2a03
cmp dword [0xa05cb0], 0
je 0x5c2a11
push 0
mov eax, ebp
xor ecx, ecx
call fcn.005b46a0
add esp, 4
mov esi, dword [0x9beed8]
cmp esi, ebp
mov eax, dword [0x9beee4]
mov ecx, dword [0x9beedc]
je 0x5c2a46
cmp eax, 4
jne 0x5c2a46
mov edx, dword [0x9beee0]
lea edx, [edx + esi*2]
add edx, esi
lea ebp, [ecx + 6]
cmp ebp, dword [edx*4 + 0x87bf90]
jl 0x5c2b71
test ecx, ecx
je 0x5c2b55
mov edx, dword [0x9beee0]
lea edx, [edx + esi*2]
add edx, esi
mov edx, dword [edx*4 + 0x87bfa8]
cmp dword [0xa05cd4], edx
je 0x5c2aa1
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
push edx
mov edx, dword [ecx + 0x164]
push eax
call edx
mov esi, dword [0x9beed8]
mov eax, dword [0x9beee0]
lea ecx, [eax + esi*2]
mov eax, dword [0x9beee4]
add ecx, esi
mov edx, dword [ecx*4 + 0x87bfa8]
mov ecx, dword [0x9beedc]
mov dword [0xa05cd4], edx
test esi, esi
je 0x5c2ac0
mov edx, 0x8c0138
call fcn.005a3470
mov eax, dword [0x9beee4]
mov ecx, dword [0x9beedc]
mov esi, dword [0x9beed8]
cmp eax, 4
jne 0x5c2ad5
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x5c2b0c
cmp eax, 2
jne 0x5c2ae3
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
jmp 0x5c2b0c
cmp eax, 6
jne 0x5c2aed
lea eax, [ecx - 2]
jmp 0x5c2b0c
cmp eax, 5
jne 0x5c2af7
lea eax, [ecx - 2]
jmp 0x5c2b0c
cmp eax, 3
jne 0x5c2b01
lea eax, [ecx - 1]
jmp 0x5c2b0c
sub eax, 1
neg eax
sbb eax, eax
not eax
and eax, ecx
mov ecx, dword [0x9beee0]
mov edx, dword [0x9bed28]
lea ecx, [ecx + esi*2]
add ecx, esi
mov esi, dword [edx]
add ecx, ecx
mov ebp, dword [ecx + ecx + 0x87bfc0]
add ecx, ecx
mov ecx, dword [ecx + 0x9beec0]
push ebp
push ecx
mov ecx, dword [esi + 0x14c]
push eax
mov eax, dword [0x9beee4]
push eax
push edx
call ecx
cmp dword [0x9beed8], 0
je 0x5c2b55
mov edx, 0xb16148
call fcn.005a3470
mov edx, dword [0x9beee0]
mov dword [0x9beedc], 0
mov eax, dword [edx*4 + 0x9beec0]
mov dword [0x9beefc], eax
mov eax, dword [0x9beefc]
mov dword [0x9beed8], 0
mov dword [0x9beee4], 4
mov dword [eax + 0x4c], edi
mov dword [eax + 0x10], edi
fild dword [esp + 0x1c]
pop ebp
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [eax]
fst dword [eax + 0x28]
fstp dword [eax + 0x50]
fild dword [esp + 0x20]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [eax + 0x14]
fst dword [eax + 0x3c]
fstp dword [eax + 0x64]
fild dword [esp + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [eax + 4]
fst dword [eax + 0x18]
fstp dword [eax + 0x68]
fild dword [esp + 0x24]
mov dword [eax + 0x6c], ebx
mov dword [eax + 0x58], ebx
mov dword [eax + 0x44], ebx
fstp dword [esp + 0x14]
mov dword [eax + 0x30], ebx
fld dword [esp + 0x14]
mov dword [eax + 0x1c], ebx
fst dword [eax + 0x2c]
mov dword [eax + 8], ebx
fst dword [eax + 0x40]
pop ebx
fstp dword [eax + 0x54]
add dword [0x9beefc], 0x78
add dword [0x9beedc], 6
pop edi
xor eax, eax
pop esi
add esp, 0x1c
ret
pop edi
xor eax, eax
pop esi
add esp, 0x1c
ret
or eax, 0xffffffff
pop esi
add esp, 0x1c
ret