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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff64
mov ebx, eax
mov eax, dword [ebx + 0x174]
test eax, eax
je 0x5b5a5d
mov dword [esp + 0x3c], eax
cmp byte [ebx + 0x403], 0
jne 0x5b4fcb
lea edx, [esp + 0x8c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x20]
lea edx, [esp + 0x8c]
mov eax, dword [esp + 0x3c]
call fcn.0044bd6c
lea edx, [esp + 0x54]
mov eax, ebx
call fcn.0055e598
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x204]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x208]
mov dword [esp + 0x1c], eax
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jb 0x5b5010
mov eax, dword [0x6690d8]
test byte [eax + 0xc], 2
je 0x5b501c
mov dword [ebx + 0x218], 1
jmp 0x5b5077
mov al, byte [ebx + 0x171]
dec eax
sub al, 3
jb 0x5b502b
je 0x5b5037
jmp 0x5b5043
mov dword [ebx + 0x218], 1
jmp 0x5b5077
mov dword [ebx + 0x218], 2
jmp 0x5b5077
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
sub eax, 0xa
mov edx, dword [esp + 0xc]
add edx, 0xa
mov ecx, edx
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebx + 0x13c]
mov eax, dword [eax + 0x18]
call fcn.00652c54
call fcn.00652c70
mov dword [ebx + 0x218], eax
cmp byte [ebx + 0x171], 4
jne 0x5b5094
cmp byte [ebx + 0x14e], 0
jne 0x5b5094
mov eax, dword [0x6690d8]
test byte [eax + 9], 1
jne 0x5b5098
xor eax, eax
jmp 0x5b509a
mov al, 1
mov byte [esp + 0x38], al
mov esi, 0x7fffffff
cmp byte [ebx + 0x40d], 0
je 0x5b50be
mov eax, dword [ebx + 0x13c]
mov esi, dword [eax + 0x18]
dec esi
xor eax, eax
mov al, byte [esp + 0x38]
add esi, eax
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5b50e9
lea edx, [esp + 0x74]
mov eax, ebx
call fcn.005b5c10
mov edx, dword [esp + 0x74]
add edx, edx
add edx, dword [esp + 0x78]
mov eax, ebx
call fcn.0055fa4c
mov edi, eax
jmp 0x5b50fa
mov edi, dword [esp + 0xc]
add edi, 0xa
imul edi, dword [ebx + 0x218]
add edi, 0xa
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
mov edx, edi
call fcn.00652c5c
mov dword [ebx + 0x204], eax
xor eax, eax
mov dword [esp + 0x28], eax
or ebp, 0xffffffff
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, ebx
call fcn.0055ce1c
test al, al
je 0x5b5143
mov eax, dword [0x6698c8]
test byte [eax + 0x30], 0x40
je 0x5b5143
mov eax, dword [0x669188]
mov eax, dword [eax]
shr eax, 1
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x24], eax
test esi, esi
jl 0x5b57f2
inc esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], 0
xor eax, eax
mov al, byte [esp + 0x38]
mov esi, dword [esp + 0x2c]
sub esi, eax
cmp esi, 0xffffffff
jne 0x5b517a
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x5b5513
mov eax, dword [ebx + 0x13c]
mov edi, dword [eax + 0x18]
test edi, edi
jne 0x5b51a1
mov eax, dword [ebx + 0x4d4]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 0x52c]
mov dword [esp + 0x14], eax
jmp 0x5b5513
mov eax, esi
cmp edi, eax
jg 0x5b51c1
mov eax, dword [ebx + 0x13c]
call fcn.0064e250
call fcn.0054e7ec
and eax, 0x7f
push eax
mov eax, edi
dec eax
pop edx
sub eax, edx
cmp esi, eax
setne byte [esp + 0x39]
mov edx, dword [ebx + 0x13c]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
mov dword [esp + 8], eax
cmp byte [esp + 0x39], 0
jne 0x5b51e8
mov eax, dword [esp + 8]
call fcn.00553644
xor eax, eax
mov dword [esp + 0x30], eax
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5b5299
xor eax, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
cmp dword [eax + 0x18], 0
je 0x5b543d
mov eax, dword [esp + 8]
call fcn.0064e250
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x44]
mov edx, dword [esp + 0x44]
sub eax, dword [edx + 0x68]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x3c]
mov edx, dword [esp + 0x48]
add eax, dword [edx + 0x60]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
sub dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
mov edi, dword [eax + 0x18]
dec edi
cmp edi, 0
jl 0x5b543d
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + edi*4]
mov edx, dword [eax + 0x38]
mov eax, dword [esp + 0x14]
call fcn.00652c5c
mov dword [esp + 0x14], eax
dec edi
cmp edi, 0xffffffff
jne 0x5b526e
jmp 0x5b543d
mov eax, dword [0x6698c8]
test byte [eax], 8
je 0x5b542b
cmp byte [ebx + 0x14d], 0
jne 0x5b542b
mov eax, dword [esp + 8]
call fcn.0054e7ec
test al, al
je 0x5b52dd
mov dword [esp + 0x14], 0xfffffffe
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
call fcn.0064e144
jmp 0x5b543d
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp byte [eax + 0x29], 3
jne 0x5b5305
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
call fcn.00557608
xor edx, edx
mov eax, dword [esp + 8]
call fcn.0064e29c
mov eax, dword [esp + 8]
cmp dword [eax + 0x18], 0
jle 0x5b5335
mov eax, dword [esp + 8]
call fcn.0064e250
cmp byte [eax + 0x29], 3
jne 0x5b5335
mov eax, dword [esp + 8]
call fcn.0064e250
call fcn.00557608
mov eax, dword [esp + 8]
call fcn.0064e2cc
mov eax, dword [esp + 8]
call fcn.0054e7ec
test al, al
je 0x5b534f
mov dword [esp + 0x14], 0xfffffffe
jmp 0x5b53e9
mov eax, dword [esp + 8]
call fcn.0064e250
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [esp + 8]
sub edx, dword [eax + 0x3c]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x44]
mov ecx, dword [esp + 0x4c]
sub eax, dword [ecx + 0x68]
add eax, 0x64
call fcn.00652c54
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x3c]
mov edx, dword [esp + 0x50]
add eax, dword [edx + 0x60]
sub eax, 0x64
call fcn.00652c64
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
sub dword [esp + 0x14], eax
cmp byte [ebx + 0x40d], 0
je 0x5b53e9
mov eax, dword [ebx + 0x13c]
mov eax, dword [eax + 0x18]
dec eax
cmp esi, eax
jne 0x5b53e9
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [esp + 8]
sub edx, dword [eax + 0x3c]
sub edx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
call fcn.00652c5c
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
mov edi, dword [eax + 0x18]
dec edi
cmp edi, 0
jl 0x5b543d
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 8], 3
jne 0x5b5423
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
mov edx, edi
call fcn.0064e29c
dec edi
cmp edi, 0xffffffff
jne 0x5b53fc
jmp 0x5b543d
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x44]
mov edx, dword [esp + 8]
sub eax, dword [edx + 0x3c]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
jle 0x5b5469
mov edx, dword [esp + 0x14]
mov eax, ebx
call fcn.0055fa4c
mov dword [esp + 0x14], eax
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5b5469
dec dword [esp + 0x14]
mov eax, dword [esp + 8]
dec dword [eax + 0x54]
cmp byte [esp + 0x39], 0
jne 0x5b5513
cmp dword [esp + 0x30], 0
je 0x5b5513
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x30]
sub edx, dword [eax + 0xc0]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
mov edi, dword [eax + 0x18]
dec edi
cmp edi, 0
jl 0x5b54c8
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + edi*4]
mov edx, dword [esp + 0x34]
sub dword [eax + 0x30], edx
mov edx, dword [esp + 0x34]
sub dword [eax + 0x38], edx
dec edi
cmp edi, 0xffffffff
jne 0x5b54a4
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x30]
mov dword [eax + 0xc0], edx
mov edx, dword [esp + 0x30]
mov eax, ebx
call fcn.0055fa4c
mov dword [esp + 0x30], eax
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x18]
dec edi
cmp edi, 0
jl 0x5b5513
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + edi*4]
add eax, 0x48
mov edx, dword [esp + 0x30]
sub dword [eax + 4], edx
mov edx, dword [esp + 0x30]
sub dword [eax + 0xc], edx
dec edi
cmp edi, 0xffffffff
jne 0x5b54f2
mov eax, dword [esp + 0x2c]
cdq
idiv dword [ebx + 0x218]
cmp ebp, eax
jne 0x5b5538
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
call fcn.00652c5c
mov dword [esp + 0x24], eax
jmp 0x5b5692
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5b55ad
lea edx, [esp + 0x80]
mov eax, ebx
call fcn.005b5c10
cmp byte [ebx + 0x14e], 2
je 0x5b556d
mov eax, dword [0x6698c8]
test byte [eax], 2
jne 0x5b556d
cmp byte [ebx + 0x45f], 0
je 0x5b5599
mov edx, dword [esp + 0x80]
add edx, edx
add edx, dword [esp + 0x84]
mov eax, ebx
call fcn.0055fa4c
mov edx, dword [ebx + 0x204]
sub edx, eax
sar edx, 1
jns 0x5b5593
adc edx, 0
mov dword [esp + 0x28], edx
jmp 0x5b55ed
mov edx, dword [esp + 0x80]
mov eax, ebx
call fcn.0055fa4c
mov dword [esp + 0x28], eax
jmp 0x5b55ed
mov eax, dword [0x6690d8]
test byte [eax + 8], 0x40
je 0x5b55e5
mov eax, dword [ebx + 0x218]
imul dword [esp + 0xc]
mov edx, dword [ebx + 0x204]
sub edx, eax
mov eax, dword [ebx + 0x218]
dec eax
add eax, eax
lea eax, [eax + eax*4]
sub edx, eax
sar edx, 1
jns 0x5b55df
adc edx, 0
mov dword [esp + 0x28], edx
jmp 0x5b55ed
mov dword [esp + 0x28], 0xa
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5b5606
test ebp, ebp
jl 0x5b5606
mov eax, dword [esp + 0x24]
add dword [esp + 0x20], eax
jmp 0x5b5668
cmp byte [ebx + 0x14e], 0
jne 0x5b563c
mov eax, dword [0x6698c8]
test byte [eax], 8
je 0x5b563c
cmp byte [ebx + 0x14d], 0
jne 0x5b563c
test ebp, ebp
setl al
and eax, 0x7f
lea eax, [eax + eax*2]
mov edx, dword [esp + 0x24]
add edx, 2
add eax, edx
add dword [esp + 0x20], eax
jmp 0x5b5668
mov eax, dword [esp + 0x24]
add eax, 0xa
add dword [esp + 0x20], eax
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5b5668
mov eax, dword [ebx + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp byte [eax + 0x3c], 0
je 0x5b5668
add dword [esp + 0x20], 0xa
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
inc ebp
mov eax, dword [ebx + 0x28]
cmp ebp, dword [eax + 0x18]
jl 0x5b5682
mov edx, ebp
add edx, edx
call fcn.0064dff0
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [eax + ebp*4], edx
mov dword [ebx + 0x2c], ebp
cmp byte [ebx + 0x40d], 0
jne 0x5b56bf
test ebp, ebp
jle 0x5b56bf
mov eax, dword [ebx + 0x13c]
cmp esi, dword [eax + 0x18]
jl 0x5b56bf
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x24]
add eax, 0xa
cmp eax, dword [esp + 0x1c]
jg 0x5b57f2
test esi, esi
jl 0x5b57cb
mov eax, dword [ebx + 0x13c]
cmp esi, dword [eax + 0x18]
jge 0x5b577b
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + esi*4]
mov eax, dword [esp + 0x14]
push eax
lea eax, [esp + 0x90]
push eax
mov ecx, dword [esi + 0x50]
sub ecx, dword [esi + 0x48]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
call fcn.0064d694
push esi
lea edi, [esi + 0x48]
lea esi, [esp + 0x90]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop esi
cmp byte [ebx + 0x14e], 0
jne 0x5b57cb
cmp dword [ebx + 0x218], 1
jne 0x5b57cb
mov eax, dword [esi + 0x50]
sub eax, dword [esi + 0x48]
cmp eax, dword [esp + 0xc]
jge 0x5b57cb
mov eax, dword [esi + 0x50]
sub eax, dword [esi + 0x48]
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x284]
sub edx, 0x14
cmp eax, edx
jge 0x5b57cb
mov eax, dword [esi + 0x50]
sub eax, dword [esi + 0x48]
push eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x284]
sub eax, 0x14
pop edx
sub eax, edx
sar eax, 1
jns 0x5b576e
adc eax, 0
mov edx, eax
sub edx, dword [esi + 0x48]
add dword [esi + 0x50], edx
mov dword [esi + 0x48], eax
jmp 0x5b57cb
lea eax, [esi + 1]
mov edx, eax
shl edx, 4
mov eax, dword [ebx + 0x20]
call fcn.0064dac8
mov dword [ebx + 0x24], esi
mov eax, dword [esp + 0x14]
push eax
lea eax, [esp + 0x90]
push eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
call fcn.0064d694
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + 4]
mov edx, esi
shl edx, 4
add eax, edx
push esi
lea esi, [esp + 0x90]
mov edi, eax
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [esp + 0xc]
add eax, 0xa
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x24]
mov dword [ebx + 0x208], eax
inc dword [esp + 0x2c]
dec dword [esp + 0x40]
jne 0x5b515e
cmp byte [ebx + 0x14e], 0
jne 0x5b5817
mov eax, dword [0x6698c8]
test byte [eax], 8
je 0x5b5817
cmp byte [ebx + 0x14d], 0
jne 0x5b5817
add dword [ebx + 0x208], 5
jmp 0x5b581e
add dword [ebx + 0x208], 0xa
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
cmp eax, dword [ebx + 0x204]
jle 0x5b5840
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
mov dword [ebx + 0x204], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x288]
cmp eax, dword [ebx + 0x208]
jle 0x5b5862
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x288]
mov dword [ebx + 0x208], eax
mov eax, ebx
call fcn.0055ce1c
test al, al
je 0x5b5887
mov eax, dword [0x6698c8]
test byte [eax + 0x30], 0x40
je 0x5b5887
mov eax, dword [0x669188]
mov eax, dword [eax]
shr eax, 1
add dword [ebx + 0x208], eax
cmp byte [ebx + 0x40d], 0
jne 0x5b58a6
mov eax, dword [ebx + 0x208]
cmp eax, dword [esp + 0x1c]
jge 0x5b58a6
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x208], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [ebx + 0x204]
sub edx, dword [eax + 0x284]
mov eax, dword [ebx + 0x20c]
call fcn.00652c54
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [ebx + 0x208]
sub edx, dword [eax + 0x288]
mov eax, dword [ebx + 0x210]
call fcn.00652c54
mov dword [esp + 4], eax
cmp byte [ebx + 0x3fc], 0
jne 0x5b5a1d
lea edx, [ebx + 0x20c]
mov eax, esp
call fcn.006188fc
test al, al
jne 0x5b591a
mov dl, 0xe
mov eax, ebx
call fcn.0055f6b0
mov edx, esp
mov eax, ebx
call fcn.0055c38c
mov eax, ebx
call fcn.0055f764
mov eax, dword [esp + 0x3c]
or dword [eax + 0x2cc], 0x4000
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x270]
call fcn.00610194
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x26c]
call fcn.00610194
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x270]
mov edx, dword [ebx + 0x204]
mov dword [eax + 0x1cc], edx
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
mov edx, 0x5a
call fcn.0061ec08
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x270]
mov dword [edx + 0x1d8], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebx + 0x208]
mov dword [eax + 0x1cc], edx
mov al, byte [ebx + 0x171]
add al, 0xfd
sub al, 2
jae 0x5b59c4
cmp byte [ebx + 0x14e], 0
jne 0x5b59c4
mov eax, dword [esp + 0x10]
add eax, 0xa
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x26c]
mov dword [edx + 0x1d8], eax
jmp 0x5b59e8
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x288]
mov edx, 0x5a
call fcn.0061ec08
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x26c]
mov dword [edx + 0x1d8], eax
mov eax, dword [esp + 0x3c]
call fcn.0044c280
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x270]
call fcn.006101bc
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x26c]
call fcn.006101bc
mov eax, dword [esp + 0x3c]
and dword [eax + 0x2cc], 0xffffbfff
cmp byte [ebx + 0x400], 0
je 0x5b5a41
mov eax, ebx
call fcn.005ba7dc
mov eax, dword [esp + 0x3c]
call fcn.006439e0
test al, al
je 0x5b5a41
mov eax, ebx
call fcn.005bb070
mov eax, dword [ebx + 0x204]
cmp eax, dword [esp + 0x18]
je 0x5b5a5d
cmp byte [ebx + 0x403], 0
je 0x5b5a5d
mov byte [ebx + 0x404], 1
add esp, 0x9c
pop ebp
pop edi
pop esi
pop ebx
ret