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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov dword [esp + 0x44], ecx
cmp ebp, 3
je 0x54ce00
mov edx, dword [esp + 0x78]
add edx, dword [esp + 0x80]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x7c]
add edx, dword [esp + 0x84]
sar eax, 1
mov dword [esp + 0x34], eax
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x78]
sar eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x80]
sub edx, dword [eax + 0x10]
sub ecx, dword [eax + 0x10]
lea edx, [ecx + edx + 1]
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x84]
shl edx, 4
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x7c]
sub eax, ecx
add eax, 1
sub edx, ecx
shl eax, 5
shl edx, 5
lea eax, [edx + eax + 0x70]
sar eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x88]
test eax, eax
mov eax, 8
cmovne eax, dword [esp + 0x88]
mov dword [esp + 0x88], eax
test ebp, ebp
jne 0x54ce20
movsx eax, word [esp + 0x40]
mov ebx, dword [0x5b522c]
mov dword [esp + 0x48], eax
movsx eax, word [esp + 0x3c]
mov dword [esp + 0x4c], eax
test ebx, ebx
jle 0x54cc1c
mov dword [esp + 0x70], ebp
lea esi, [esi]
mov dword [esp], ebx
mov ecx, 0x5b5220
call fcn.004fb910
mov edx, ebx
sub ebx, 1
sub esp, 4
test eax, eax
jne 0x54cc10
cmp dword [0x5b522c], edx
jl 0x54ce10
mov eax, dword [0x5b5230]
mov edx, dword [0x5b5239]
imul eax, ebx
mov esi, dword [edx + eax]
test edi, edi
je 0x54cad9
movsx eax, word [esi]
cmp eax, edi
jne 0x54cc10
mov eax, dword [esp + 0x84]
mov dword [esp + 0x24], 0
mov ecx, 0x5ba360
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
movsx eax, word [esi + 0x19]
mov dword [esp + 0xc], eax
movsx eax, word [esi + 0x17]
mov dword [esp + 8], eax
movsx eax, word [esi + 0x15]
mov dword [esp + 4], eax
movsx eax, word [esi + 0x13]
mov dword [esp], eax
call fcn.00499d90
sub esp, 0x28
cmp dword [esp + 0x88], eax
jl 0x54cc10
movsx ecx, word [esi + 0x25]
imul ecx, dword [0x59ad30]
movsx eax, word [esi + 0x23]
add ecx, eax
imul ecx, ecx, 0xe
add ecx, dword [0x5b39d0]
call fcn.004988a0
mov ecx, dword [esp + 0x38]
imul ecx, dword [0x59ad30]
add ecx, dword [esp + 0x34]
mov ebp, eax
imul ecx, ecx, 0xe
add ecx, dword [0x5b39d0]
call fcn.004988a0
cmp ebp, 1
sete dl
cmp eax, 1
sete al
cmp dl, al
jne 0x54cc10
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x10]
mov ebp, dword [eax + 0x14]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
movsx eax, word [esi + 0x19]
movsx edx, word [esi + 0x15]
sub eax, ebp
sub edx, ebp
add eax, 1
shl edx, 5
shl eax, 5
lea eax, [edx + eax + 0x70]
sar eax, 1
cwde
mov dword [esp + 0x10], eax
movsx eax, word [esi + 0x17]
movsx edx, word [esi + 0x13]
mov dword [esp], 0x5b9d6c
sub eax, ecx
sub edx, ecx
mov ecx, 0x5b8340
lea eax, [eax + edx + 1]
shl eax, 4
cwde
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
call fcn.00417660
sub esp, 0x1c
nop
test ebx, ebx
jne 0x54ca90
mov ebp, dword [esp + 0x70]
movsx edi, word [esp + 0x40]
mov eax, dword [0x5b504c]
mov dword [esp + 0x40], edi
movsx edi, word [esp + 0x3c]
mov edx, eax
mov dword [esp + 0x3c], edi
test eax, eax
jle 0x54ce00
lea esi, [esi]
lea esi, [eax - 1]
cmp edx, eax
jl 0x54cdd0
mov eax, dword [0x5b5050]
mov edx, dword [0x5b5059]
imul eax, esi
mov ebx, dword [edx + eax]
test ebx, ebx
je 0x54cdd0
movsx eax, byte [ebx + 4]
mov ecx, 0x5b62e0
mov dword [esp], eax
test ebp, ebp
je 0x54cde8
call fcn.00438280
sub esp, 4
mov ecx, eax
mov dword [esp], ebp
call fcn.004383b0
sub esp, 4
test eax, eax
je 0x54cdd0
mov eax, dword [esp + 0x84]
mov dword [esp + 0x24], 0
mov ecx, 0x5ba360
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
movsx eax, word [ebx + 0x1b]
mov dword [esp + 0xc], eax
movsx eax, word [ebx + 0x19]
mov dword [esp + 8], eax
movsx eax, word [ebx + 0x17]
mov dword [esp + 4], eax
movsx eax, word [ebx + 0x15]
mov dword [esp], eax
call fcn.00499d90
sub esp, 0x28
cmp dword [esp + 0x88], eax
jl 0x54cdd0
movsx ecx, word [ebx + 0x27]
imul ecx, dword [0x59ad30]
movsx eax, word [ebx + 0x25]
add ecx, eax
imul ecx, ecx, 0xe
add ecx, dword [0x5b39d0]
call fcn.004988a0
mov ecx, dword [esp + 0x38]
imul ecx, dword [0x59ad30]
add ecx, dword [esp + 0x34]
mov edi, eax
imul ecx, ecx, 0xe
add ecx, dword [0x5b39d0]
call fcn.004988a0
cmp edi, 1
sete dl
cmp eax, 1
sete al
cmp dl, al
jne 0x54cdd0
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
movsx eax, word [ebx + 0x1b]
movsx edx, word [ebx + 0x17]
sub eax, edi
sub edx, edi
add eax, 1
shl edx, 5
shl eax, 5
lea eax, [edx + eax + 0x70]
sar eax, 1
cwde
mov dword [esp + 0x10], eax
movsx eax, word [ebx + 0x19]
movsx edx, word [ebx + 0x15]
mov dword [esp], 0x5b9d6c
sub eax, ecx
sub edx, ecx
mov ecx, 0x5b8340
lea eax, [eax + edx + 1]
shl eax, 4
cwde
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call fcn.00417660
sub esp, 0x1c
lea esi, [esi]
nop
test esi, esi
je 0x54ce00
mov edx, dword [0x5b504c]
mov eax, esi
jmp 0x54cc40
call fcn.00438280
movsx eax, byte [eax + 0x4e]
sub esp, 4
jmp 0x54cc8d
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
xor esi, esi
jmp 0x54caca
mov dword [esp], ebp
mov ecx, 0x5b62e0
call fcn.00438280
sub esp, 4
cmp byte [eax + 0x4e], 0
jne 0x54ca65
jmp 0x54cc1c