Function at 0x5b9d24
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 0x5ba7fd
mov dword [esp + 0x3c], eax
cmp byte [ebx + 0x403], 0
jne 0x5b9d6b
lea edx, [esp + 0x8c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
call dword [ecx + 0x14]
lea edx, [esp + 0x8c]
mov eax, dword [esp + 0x3c]
call fcn.00461bcc
lea edx, [esp + 0x54]
mov eax, ebx
call fcn.00563fec
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 0x5b9db0
mov eax, dword [0x66e8a8]
test byte [eax + 0xc], 2
je 0x5b9dbc
mov dword [ebx + 0x218], 1
jmp 0x5b9e17
mov al, byte [ebx + 0x171]
dec eax
sub al, 3
jb 0x5b9dcb
je 0x5b9dd7
jmp 0x5b9de3
mov dword [ebx + 0x218], 1
jmp 0x5b9e17
mov dword [ebx + 0x218], 2
jmp 0x5b9e17
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.00653538
call fcn.00653554
mov dword [ebx + 0x218], eax
cmp byte [ebx + 0x171], 4
jne 0x5b9e34
cmp byte [ebx + 0x14e], 0
jne 0x5b9e34
mov eax, dword [0x66e8a8]
test byte [eax + 9], 1
jne 0x5b9e38
xor eax, eax
jmp 0x5b9e3a
mov al, 1
mov byte [esp + 0x38], al
mov esi, 0x7fffffff
cmp byte [ebx + 0x40d], 0
je 0x5b9e5e
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 0x5b9e89
lea edx, [esp + 0x74]
mov eax, ebx
call fcn.005ba9b0
mov edx, dword [esp + 0x74]
add edx, edx
add edx, dword [esp + 0x78]
mov eax, ebx
call fcn.005652ec
mov edi, eax
jmp 0x5b9e9a
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.00653540
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.00562870
test al, al
je 0x5b9ee3
mov eax, dword [0x66fc50]
test byte [eax + 0x30], 0x40
je 0x5b9ee3
mov eax, dword [0x66eae8]
mov eax, dword [eax]
shr eax, 1
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x24], eax
test esi, esi
jl 0x5ba592
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 0x5b9f1a
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x5ba2b3
mov eax, dword [ebx + 0x13c]
mov edi, dword [eax + 0x18]
test edi, edi
jne 0x5b9f41
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 0x5ba2b3
mov eax, esi
cmp edi, eax
jg 0x5b9f61
mov eax, dword [ebx + 0x13c]
call fcn.0064ea3c
call fcn.00554288
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 0x5b9f88
mov eax, dword [esp + 8]
call fcn.005590e0
xor eax, eax
mov dword [esp + 0x30], eax
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5ba039
xor eax, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
cmp dword [eax + 0x18], 0
je 0x5ba1dd
mov eax, dword [esp + 8]
call fcn.0064ea3c
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 0x5ba1dd
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.00653540
mov dword [esp + 0x14], eax
dec edi
cmp edi, 0xffffffff
jne 0x5ba00e
jmp 0x5ba1dd
mov eax, dword [0x66fc50]
test byte [eax], 8
je 0x5ba1cb
cmp byte [ebx + 0x14d], 0
jne 0x5ba1cb
mov eax, dword [esp + 8]
call fcn.00554288
test al, al
je 0x5ba07d
mov dword [esp + 0x14], 0xfffffffe
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
call fcn.0064e930
jmp 0x5ba1dd
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp byte [eax + 0x29], 3
jne 0x5ba0a5
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
call fcn.0055d064
xor edx, edx
mov eax, dword [esp + 8]
call fcn.0064ea88
mov eax, dword [esp + 8]
cmp dword [eax + 0x18], 0
jle 0x5ba0d5
mov eax, dword [esp + 8]
call fcn.0064ea3c
cmp byte [eax + 0x29], 3
jne 0x5ba0d5
mov eax, dword [esp + 8]
call fcn.0064ea3c
call fcn.0055d064
mov eax, dword [esp + 8]
call fcn.0064eab8
mov eax, dword [esp + 8]
call fcn.00554288
test al, al
je 0x5ba0ef
mov dword [esp + 0x14], 0xfffffffe
jmp 0x5ba189
mov eax, dword [esp + 8]
call fcn.0064ea3c
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.00653538
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.00653548
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
sub dword [esp + 0x14], eax
cmp byte [ebx + 0x40d], 0
je 0x5ba189
mov eax, dword [ebx + 0x13c]
mov eax, dword [eax + 0x18]
dec eax
cmp esi, eax
jne 0x5ba189
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.00653540
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 0x5ba1dd
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 0x5ba1c3
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
mov edx, edi
call fcn.0064ea88
dec edi
cmp edi, 0xffffffff
jne 0x5ba19c
jmp 0x5ba1dd
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 0x5ba209
mov edx, dword [esp + 0x14]
mov eax, ebx
call fcn.005652ec
mov dword [esp + 0x14], eax
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5ba209
dec dword [esp + 0x14]
mov eax, dword [esp + 8]
dec dword [eax + 0x54]
cmp byte [esp + 0x39], 0
jne 0x5ba2b3
cmp dword [esp + 0x30], 0
je 0x5ba2b3
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 0x5ba268
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 0x5ba244
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.005652ec
mov dword [esp + 0x30], eax
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x18]
dec edi
cmp edi, 0
jl 0x5ba2b3
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 0x5ba292
mov eax, dword [esp + 0x2c]
cdq
idiv dword [ebx + 0x218]
cmp ebp, eax
jne 0x5ba2d8
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
call fcn.00653540
mov dword [esp + 0x24], eax
jmp 0x5ba432
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5ba34d
lea edx, [esp + 0x80]
mov eax, ebx
call fcn.005ba9b0
cmp byte [ebx + 0x14e], 2
je 0x5ba30d
mov eax, dword [0x66fc50]
test byte [eax], 2
jne 0x5ba30d
cmp byte [ebx + 0x45f], 0
je 0x5ba339
mov edx, dword [esp + 0x80]
add edx, edx
add edx, dword [esp + 0x84]
mov eax, ebx
call fcn.005652ec
mov edx, dword [ebx + 0x204]
sub edx, eax
sar edx, 1
jns 0x5ba333
adc edx, 0
mov dword [esp + 0x28], edx
jmp 0x5ba38d
mov edx, dword [esp + 0x80]
mov eax, ebx
call fcn.005652ec
mov dword [esp + 0x28], eax
jmp 0x5ba38d
mov eax, dword [0x66e8a8]
test byte [eax + 8], 0x40
je 0x5ba385
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 0x5ba37f
adc edx, 0
mov dword [esp + 0x28], edx
jmp 0x5ba38d
mov dword [esp + 0x28], 0xa
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5ba3a6
test ebp, ebp
jl 0x5ba3a6
mov eax, dword [esp + 0x24]
add dword [esp + 0x20], eax
jmp 0x5ba408
cmp byte [ebx + 0x14e], 0
jne 0x5ba3dc
mov eax, dword [0x66fc50]
test byte [eax], 8
je 0x5ba3dc
cmp byte [ebx + 0x14d], 0
jne 0x5ba3dc
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 0x5ba408
mov eax, dword [esp + 0x24]
add eax, 0xa
add dword [esp + 0x20], eax
mov al, byte [ebx + 0x14e]
dec eax
sub al, 2
jae 0x5ba408
mov eax, dword [ebx + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp byte [eax + 0x3c], 0
je 0x5ba408
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 0x5ba422
mov edx, ebp
add edx, edx
call fcn.0064e7dc
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 0x5ba45f
test ebp, ebp
jle 0x5ba45f
mov eax, dword [ebx + 0x13c]
cmp esi, dword [eax + 0x18]
jl 0x5ba45f
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x24]
add eax, 0xa
cmp eax, dword [esp + 0x1c]
jg 0x5ba592
test esi, esi
jl 0x5ba56b
mov eax, dword [ebx + 0x13c]
cmp esi, dword [eax + 0x18]
jge 0x5ba51b
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.0064d580
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 0x5ba56b
cmp dword [ebx + 0x218], 1
jne 0x5ba56b
mov eax, dword [esi + 0x50]
sub eax, dword [esi + 0x48]
cmp eax, dword [esp + 0xc]
jge 0x5ba56b
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 0x5ba56b
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 0x5ba50e
adc eax, 0
mov edx, eax
sub edx, dword [esi + 0x48]
add dword [esi + 0x50], edx
mov dword [esi + 0x48], eax
jmp 0x5ba56b
lea eax, [esi + 1]
mov edx, eax
shl edx, 4
mov eax, dword [ebx + 0x20]
call fcn.0064e298
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.0064d580
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 0x5b9efe
cmp byte [ebx + 0x14e], 0
jne 0x5ba5b7
mov eax, dword [0x66fc50]
test byte [eax], 8
je 0x5ba5b7
cmp byte [ebx + 0x14d], 0
jne 0x5ba5b7
add dword [ebx + 0x208], 5
jmp 0x5ba5be
add dword [ebx + 0x208], 0xa
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
cmp eax, dword [ebx + 0x204]
jle 0x5ba5e0
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 0x5ba602
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x288]
mov dword [ebx + 0x208], eax
mov eax, ebx
call fcn.00562870
test al, al
je 0x5ba627
mov eax, dword [0x66fc50]
test byte [eax + 0x30], 0x40
je 0x5ba627
mov eax, dword [0x66eae8]
mov eax, dword [eax]
shr eax, 1
add dword [ebx + 0x208], eax
cmp byte [ebx + 0x40d], 0
jne 0x5ba646
mov eax, dword [ebx + 0x208]
cmp eax, dword [esp + 0x1c]
jge 0x5ba646
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.00653538
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.00653538
mov dword [esp + 4], eax
cmp byte [ebx + 0x3fc], 0
jne 0x5ba7bd
lea edx, [ebx + 0x20c]
mov eax, esp
call fcn.00618da0
test al, al
jne 0x5ba6ba
mov dl, 0xe
mov eax, ebx
call fcn.00564f50
mov edx, esp
mov eax, ebx
call fcn.00561de0
mov eax, ebx
call fcn.00565004
mov eax, dword [esp + 0x3c]
or dword [eax + 0x2cc], 0x4000
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x270]
call fcn.00612ecc
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x26c]
call fcn.00612ecc
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.0061f000
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 0x5ba764
cmp byte [ebx + 0x14e], 0
jne 0x5ba764
mov eax, dword [esp + 0x10]
add eax, 0xa
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x26c]
mov dword [edx + 0x1d8], eax
jmp 0x5ba788
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x288]
mov edx, 0x5a
call fcn.0061f000
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x26c]
mov dword [edx + 0x1d8], eax
mov eax, dword [esp + 0x3c]
call fcn.004620e8
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x270]
call fcn.00612ef4
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x26c]
call fcn.00612ef4
mov eax, dword [esp + 0x3c]
and dword [eax + 0x2cc], 0xffffbfff
cmp byte [ebx + 0x400], 0
je 0x5ba7e1
mov eax, ebx
call fcn.005bf574
mov eax, dword [esp + 0x3c]
call fcn.00643818
test al, al
je 0x5ba7e1
mov eax, ebx
call fcn.005bfe08
mov eax, dword [ebx + 0x204]
cmp eax, dword [esp + 0x18]
je 0x5ba7fd
cmp byte [ebx + 0x403], 0
je 0x5ba7fd
mov byte [ebx + 0x404], 1
add esp, 0x9c
pop ebp
pop edi
pop esi
pop ebx
ret