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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x158
push ebx
push ebp
mov ebx, ecx
mov ecx, dword [ebx + 0x498]
mov eax, dword [ecx]
push esi
push edi
call dword [eax + 0x78]
lea esi, [eax + eax]
xor ebp, ebp
lea edi, [esi + esi*8]
shl edi, 2
lea ecx, [ebx + 0x49c]
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x10], ecx
mov edi, edi
mov eax, dword [ebx + 0x5f0]
test eax, eax
je 0x54fe79
mov ecx, dword [ebx + 0x5f4]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [esi + ebp]
cmp ecx, eax
jae 0x54fe79
add esi, 6
cmp ecx, esi
jge 0x54fe79
cmp ebp, 6
jge 0x54fe79
mov eax, dword [ebx + 0x5f0]
push 0x104
lea esi, [edi + eax]
lea edx, [esp + 0x5c]
xor edi, edi
push 0x6d1c50
push edx
mov byte [esp + 0x64], 0
mov dword [esp + 0x168], edi
mov dword [esp + 0x16c], edi
call fcn.0062fff0
add esp, 0xc
mov byte [esp + 0x15b], 0
mov dword [esp + 0x15c], 0x84
mov edx, dword [esi + 8]
xor ecx, ecx
cmp edx, edi
je 0x54f7e2
mov eax, dword [esi + 0xc]
sub eax, edx
sar eax, 2
cmp ecx, eax
jae 0x54f7e2
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 0x2e], 5
je 0x54f7ef
inc ecx
jmp 0x54f7c3
mov dword [esp + 0x160], 0x12
jmp 0x54f7fa
mov dword [esp + 0x160], 0x11
mov edi, ebp
and edi, 0x80000001
jns 0x54f809
dec edi
or edi, 0xfffffffe
inc edi
mov eax, ebp
imul edi, edi, 0x12c
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
imul ebp, ebp, 0xc8
lea ecx, [esp + 0x24]
push ecx
lea eax, [ebp + 0x96]
push eax
mov dword [esp + 0x20], edi
add edi, 0xc8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
push edi
lea edx, [esp + 0x64]
push edx
push ecx
mov ecx, ebx
mov dword [esp + 0x38], 0x3f800000
mov dword [esp + 0x3c], 0x3f800000
mov dword [esp + 0x48], 0x3f19999a
mov dword [esp + 0x4c], 0x3f19999a
call fcn.00542a00
mov edx, dword [esi]
push edx
push 0x6e7f0c
lea eax, [esp + 0x4c]
push 0x14
push eax
call fcn.0062ff8d
mov ecx, dword [esp + 0x24]
add esp, 0x10
add ecx, 0xffffffd8
push ecx
add edi, 0xffffffb0
push edi
sub esp, 0x1c
mov edi, esp
mov byte [esp + 0x7b], 0
lea edx, [esp + 0x68]
mov dword [esp + 0x44], esp
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
push edx
mov byte [edi + 4], 0
call fcn.0062f7d0
add esp, 4
push eax
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call fcn.00404c50
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x14]
push edx
mov ecx, ebx
call fcn.00543550
mov ecx, dword [esi + 8]
xor edi, edi
mov edi, edi
test ecx, ecx
je 0x54f951
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x54f951
mov eax, dword [esi + 8]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2d], 1
je 0x54f8ff
inc edi
jmp 0x54f8e0
cmp edi, 0xffffffff
mov dword [esp + 0x1c], edi
je 0x54f959
push 1
mov ecx, esi
call fcn.0054f560
cmp eax, 3
je 0x54f920
cmp eax, 4
je 0x54f920
cmp eax, 5
jne 0x54f959
mov eax, dword [esi + 8]
mov edi, dword [eax + edi*4]
test edi, edi
mov dword [esp + 0x15c], 0x21
je 0x54f99f
mov di, word [edi + 0x24]
cmp di, 1
jb 0x54f99f
cmp di, 0x1c
ja 0x54f99f
movzx eax, di
mov dword [esp + 0x160], eax
jmp 0x54f9aa
mov dword [esp + 0x1c], 0xffffffff
push 1
mov ecx, esi
call fcn.0054f4d0
test al, al
mov dword [esp + 0x15c], 0x84
je 0x54f9cd
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x1c]
push ecx
add eax, 0x9e
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x18]
lea edx, [esp + 0x64]
push edx
mov dword [esp + 0x170], 0x14
push ecx
jmp 0x54f9f9
mov dword [esp + 0x160], 1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [ecx + 0x18]
add eax, 0x9e
push eax
lea eax, [esp + 0x64]
push eax
push edx
jmp 0x54f9f9
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x20]
add eax, 0x9e
push eax
mov eax, dword [edx + 0x18]
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x170], 0x13
push eax
mov ecx, ebx
call fcn.00542a00
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x54fac4
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x54fac4
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff1
push ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0x85
push ecx
sub esp, 0x1c
mov edi, esp
add eax, 4
mov dword [esp + 0x44], esp
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
push eax
mov byte [edi + 4], 0
call fcn.0062f7d0
add esp, 4
push eax
mov eax, dword [esp + 0x44]
add eax, 4
push eax
mov ecx, edi
call fcn.00404c50
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x1c]
push eax
mov ecx, ebx
call fcn.00543550
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx + 0x2e]
cmp al, 3
je 0x54fa8b
cmp al, 4
je 0x54fa8b
cmp al, 5
jne 0x54fac4
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [ecx + 0x24]
add eax, 0xc6
push eax
lea eax, [esp + 0x60]
push eax
push edx
mov ecx, ebx
mov dword [esp + 0x16c], 0x84
mov dword [esp + 0x170], 0x16
call fcn.00542a70
mov ecx, dword [esi + 8]
add ebp, 0xe6
mov dword [esp + 0x20], ebp
xor edi, edi
test ecx, ecx
je 0x54fb44
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x54fb44
mov eax, dword [esi + 8]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2d], 2
je 0x54faf2
inc edi
jmp 0x54fad3
cmp edi, 0xffffffff
mov dword [esp + 0x1c], edi
je 0x54fb4c
push 2
mov ecx, esi
call fcn.0054f560
cmp eax, 3
je 0x54fb13
cmp eax, 4
je 0x54fb13
cmp eax, 5
jne 0x54fb4c
mov dword [esp + 0x15c], 0x21
mov eax, dword [esi + 8]
mov edi, dword [eax + edi*4]
test edi, edi
je 0x54fb8e
mov di, word [edi + 0x24]
cmp di, 1
jb 0x54fb8e
cmp di, 0x1c
ja 0x54fb8e
movzx eax, di
mov dword [esp + 0x160], eax
jmp 0x54fb99
mov dword [esp + 0x1c], 0xffffffff
push 2
mov ecx, esi
call fcn.0054f4d0
mov edi, dword [esp + 0x18]
add edi, 0xde
test al, al
mov dword [esp + 0x15c], 0x84
je 0x54fbb8
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x24]
push edx
mov edx, dword [ecx]
push ebp
push edi
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x170], 0x14
push edx
jmp 0x54fbd6
mov dword [esp + 0x160], 1
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [eax]
push ebp
add edi, 0xde
push edi
lea edx, [esp + 0x64]
push edx
push ecx
jmp 0x54fbd6
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push eax
mov eax, dword [edx]
push ebp
push edi
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x170], 0x13
push eax
mov ecx, ebx
call fcn.00542a00
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x54fc92
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x54fc92
add ebp, 0x28
push ebp
add edi, 0xffffffe7
push edi
sub esp, 0x1c
mov edi, esp
lea ebp, [eax + 4]
mov dword [esp + 0x60], esp
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
push ebp
mov byte [edi + 4], 0
call fcn.0062f7d0
add esp, 4
push eax
push ebp
mov ecx, edi
call fcn.00404c50
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 4]
push edx
mov ecx, ebx
call fcn.00543550
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x2e]
cmp al, 3
je 0x54fc56
cmp al, 4
je 0x54fc56
cmp al, 5
jne 0x54fc92
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add ecx, 0xffffffec
push ecx
add eax, 0xde
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x60]
push edx
push ecx
mov ecx, ebx
mov dword [esp + 0x16c], 0x84
mov dword [esp + 0x170], 0x16
call fcn.00542a70
mov edx, dword [esi + 8]
xor ecx, ecx
test edx, edx
je 0x54fcba
mov eax, dword [esi + 0xc]
sub eax, edx
sar eax, 2
cmp ecx, eax
jae 0x54fcba
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 0x2d], 3
je 0x54fcb6
inc ecx
jmp 0x54fc97
mov ebp, ecx
jmp 0x54fcbd
or ebp, 0xffffffff
mov edi, dword [esp + 0x18]
add edi, 0x11c
cmp ebp, 0xffffffff
mov dword [esp + 0x20], edi
je 0x54fd3e
push 3
mov ecx, esi
call fcn.0054f560
cmp eax, 3
je 0x54fce8
cmp eax, 4
je 0x54fce8
cmp eax, 5
jne 0x54fd3e
mov dword [esp + 0x15c], 0x21
mov eax, dword [esi + 8]
mov eax, dword [eax + ebp*4]
test eax, eax
je 0x54fd19
mov ax, word [eax + 0x24]
cmp ax, 1
jb 0x54fd19
cmp ax, 0x1c
ja 0x54fd19
movzx edx, ax
mov dword [esp + 0x160], edx
jmp 0x54fd24
mov dword [esp + 0x160], 1
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x64]
push edx
push ecx
jmp 0x54fd9e
push 3
mov ecx, esi
call fcn.0054f4d0
test al, al
mov dword [esp + 0x15c], 0x84
je 0x54fd7b
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [edx + 0x28]
push edi
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x170], 0x14
push eax
jmp 0x54fd9e
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [ecx + 0x28]
push edi
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x170], 0x13
push edx
mov ecx, ebx
call fcn.00542a00
cmp ebp, 0xffffffff
je 0x54fe4d
mov esi, dword [esi + 8]
mov ebp, dword [esi + ebp*4]
test ebp, ebp
je 0x54fe4d
mov eax, dword [esp + 0x14]
add eax, 0xfffffff1
push eax
add edi, 0xffffffe7
push edi
sub esp, 0x1c
mov esi, esp
lea edi, [ebp + 4]
mov dword [esp + 0x60], esp
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], 0
push edi
mov byte [esi + 4], 0
call fcn.0062f7d0
add esp, 4
push eax
push edi
mov ecx, esi
call fcn.00404c50
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x2c]
push edx
mov ecx, ebx
call fcn.00543550
mov al, byte [ebp + 0x2e]
cmp al, 3
je 0x54fe16
cmp al, 4
je 0x54fe16
cmp al, 5
jne 0x54fe4d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x14]
add ecx, 0xffffffec
push ecx
mov ecx, dword [eax + 0x34]
lea edx, [esp + 0x60]
push edx
push ecx
mov ecx, ebx
mov dword [esp + 0x16c], 0x84
mov dword [esp + 0x170], 0x16
call fcn.00542a70
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x40]
inc edx
add ecx, 0x24
add eax, 0x38
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebp, edx
jmp 0x54f730
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret