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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff64
mov ebx, eax
cmp byte [ebx + 0x42d], 0
jne 0x5bd61c
mov eax, dword [ebx + 0x16c]
mov dword [esp + 0x3c], eax
cmp byte [ebx + 0x3fa], 0
jne 0x5bcb68
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.0044ea5c
lea edx, [esp + 0x54]
mov eax, ebx
call fcn.00564a1c
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x1fc]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x200]
mov dword [esp + 0x1c], eax
mov al, byte [ebx + 0x146]
dec eax
sub al, 2
jb 0x5bcbad
mov eax, dword [0x672428]
test byte [eax + 0x10], 2
je 0x5bcbb9
mov dword [ebx + 0x210], 1
jmp 0x5bcc14
mov al, byte [ebx + 0x169]
dec eax
sub al, 3
jb 0x5bcbc8
je 0x5bcbd4
jmp 0x5bcbe0
mov dword [ebx + 0x210], 1
jmp 0x5bcc14
mov dword [ebx + 0x210], 2
jmp 0x5bcc14
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 + 0x134]
mov eax, dword [eax + 0x18]
call fcn.0065b28c
call fcn.0065b2a8
mov dword [ebx + 0x210], eax
cmp byte [ebx + 0x169], 4
jne 0x5bcc31
cmp byte [ebx + 0x146], 0
jne 0x5bcc31
mov eax, dword [0x672428]
test byte [eax + 0xd], 1
jne 0x5bcc35
xor eax, eax
jmp 0x5bcc37
mov al, 1
mov byte [esp + 0x38], al
cmp byte [ebx + 0x404], 0
je 0x5bcc58
mov eax, dword [ebx + 0x134]
mov esi, dword [eax + 0x18]
dec esi
xor eax, eax
mov al, byte [esp + 0x38]
add esi, eax
jmp 0x5bcc5d
mov esi, 0x7fffffff
mov al, byte [ebx + 0x146]
dec eax
sub al, 2
jae 0x5bcc88
lea edx, [esp + 0x74]
mov eax, ebx
call fcn.005bd948
mov edx, dword [esp + 0x74]
add edx, edx
add edx, dword [esp + 0x78]
mov eax, ebx
call fcn.00565f68
mov edi, eax
jmp 0x5bcc99
mov edi, dword [esp + 0xc]
add edi, 0xa
imul edi, dword [ebx + 0x210]
add edi, 0xa
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
mov edx, edi
call fcn.0065b294
mov dword [ebx + 0x1fc], eax
xor eax, eax
mov dword [esp + 0x28], eax
or ebp, 0xffffffff
mov eax, ebx
call fcn.005631e4
test al, al
je 0x5bcce6
mov eax, dword [0x672428]
test byte [eax + 0x174], 0x40
je 0x5bcce6
mov eax, dword [0x6720b8]
mov eax, dword [eax]
sar eax, 1
jns 0x5bcce0
adc eax, 0
mov dword [esp + 0x20], eax
jmp 0x5bccec
xor eax, eax
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x24], eax
test esi, esi
jl 0x5bd3a5
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 0x5bcd23
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x5bd0c1
mov eax, dword [ebx + 0x134]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x5bcd4a
mov eax, dword [ebx + 0x4cc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 0x52c]
mov dword [esp + 0x14], eax
jmp 0x5bd0c1
cmp eax, esi
jg 0x5bcd68
mov edi, eax
dec edi
mov eax, dword [ebx + 0x134]
call fcn.00656c90
call fcn.005548a8
test al, al
je 0x5bcd6a
dec edi
jmp 0x5bcd6a
mov edi, esi
cmp esi, edi
setne byte [esp + 0x39]
mov eax, dword [ebx + 0x134]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + edi*4]
mov dword [esp + 8], eax
cmp byte [esp + 0x39], 0
jne 0x5bcd91
mov eax, dword [esp + 8]
call fcn.00559718
xor eax, eax
mov dword [esp + 0x30], eax
mov al, byte [ebx + 0x146]
dec eax
sub al, 2
jae 0x5bce43
mov eax, dword [esp + 8]
cmp dword [eax + 0x18], 0
jne 0x5bcdbb
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x5bcfeb
mov eax, dword [esp + 8]
call fcn.00656c90
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 0x5bcfeb
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.0065b294
mov dword [esp + 0x14], eax
dec edi
cmp edi, 0xffffffff
jne 0x5bce18
jmp 0x5bcfeb
mov eax, dword [0x672428]
test byte [eax + 0x144], 8
je 0x5bcfd9
cmp byte [ebx + 0x145], 0
jne 0x5bcfd9
mov eax, dword [esp + 8]
call fcn.005548a8
test al, al
je 0x5bce8b
mov dword [esp + 0x14], 0xfffffffe
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
call fcn.00656bcc
jmp 0x5bcfeb
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp byte [eax + 0x29], 3
jne 0x5bceb3
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
call fcn.0055d678
xor edx, edx
mov eax, dword [esp + 8]
call fcn.00656cdc
mov eax, dword [esp + 8]
cmp dword [eax + 0x18], 0
jle 0x5bcee3
mov eax, dword [esp + 8]
call fcn.00656c90
cmp byte [eax + 0x29], 3
jne 0x5bcee3
mov eax, dword [esp + 8]
call fcn.00656c90
call fcn.0055d678
mov eax, dword [esp + 8]
call fcn.00656d0c
mov eax, dword [esp + 8]
call fcn.005548a8
test al, al
je 0x5bcefd
mov dword [esp + 0x14], 0xfffffffe
jmp 0x5bcf97
mov eax, dword [esp + 8]
call fcn.00656c90
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.0065b28c
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.0065b29c
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
sub dword [esp + 0x14], eax
cmp byte [ebx + 0x404], 0
je 0x5bcf97
mov eax, dword [ebx + 0x134]
mov eax, dword [eax + 0x18]
dec eax
cmp esi, eax
jne 0x5bcf97
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.0065b294
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 0x5bcfeb
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 0x5bcfd1
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xb8]
mov edx, edi
call fcn.00656cdc
dec edi
cmp edi, 0xffffffff
jne 0x5bcfaa
jmp 0x5bcfeb
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 0x5bd017
mov edx, dword [esp + 0x14]
mov eax, ebx
call fcn.00565f68
mov dword [esp + 0x14], eax
mov al, byte [ebx + 0x146]
dec eax
sub al, 2
jae 0x5bd017
dec dword [esp + 0x14]
mov eax, dword [esp + 8]
dec dword [eax + 0x54]
cmp byte [esp + 0x39], 0
jne 0x5bd0c1
cmp dword [esp + 0x30], 0
je 0x5bd0c1
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 0x5bd076
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 0x5bd052
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.00565f68
mov dword [esp + 0x30], eax
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x18]
dec edi
cmp edi, 0
jl 0x5bd0c1
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 0x5bd0a0
mov eax, dword [esp + 0x2c]
cdq
idiv dword [ebx + 0x210]
cmp ebp, eax
jne 0x5bd0e6
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
call fcn.0065b294
mov dword [esp + 0x24], eax
jmp 0x5bd245
mov al, byte [ebx + 0x146]
dec eax
sub al, 2
jae 0x5bd15f
lea edx, [esp + 0x80]
mov eax, ebx
call fcn.005bd948
cmp byte [ebx + 0x146], 2
je 0x5bd11f
mov eax, dword [0x672428]
test byte [eax + 0x144], 2
jne 0x5bd11f
cmp byte [ebx + 0x457], 0
je 0x5bd14b
mov edx, dword [esp + 0x80]
add edx, edx
add edx, dword [esp + 0x84]
mov eax, ebx
call fcn.00565f68
mov edx, dword [ebx + 0x1fc]
sub edx, eax
sar edx, 1
jns 0x5bd145
adc edx, 0
mov dword [esp + 0x28], edx
jmp 0x5bd19c
mov edx, dword [esp + 0x80]
mov eax, ebx
call fcn.00565f68
mov dword [esp + 0x28], eax
jmp 0x5bd19c
mov eax, dword [0x672428]
test byte [eax + 0xc], 0x40
je 0x5bd194
mov eax, dword [ebx + 0x210]
mov edx, eax
imul edx, dword [esp + 0xc]
mov ecx, dword [ebx + 0x1fc]
sub ecx, edx
dec eax
add eax, eax
lea eax, [eax + eax*4]
sub ecx, eax
sar ecx, 1
jns 0x5bd18e
adc ecx, 0
mov dword [esp + 0x28], ecx
jmp 0x5bd19c
mov dword [esp + 0x28], 0xa
mov al, byte [ebx + 0x146]
dec eax
sub al, 2
jae 0x5bd1b5
test ebp, ebp
jl 0x5bd1b5
mov eax, dword [esp + 0x24]
add dword [esp + 0x20], eax
jmp 0x5bd21b
cmp byte [ebx + 0x146], 0
jne 0x5bd1ef
mov eax, dword [0x672428]
test byte [eax + 0x144], 8
je 0x5bd1ef
cmp byte [ebx + 0x145], 0
jne 0x5bd1ef
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 0x5bd21b
mov eax, dword [esp + 0x24]
add eax, 0xa
add dword [esp + 0x20], eax
mov al, byte [ebx + 0x146]
dec eax
sub al, 2
jae 0x5bd21b
mov eax, dword [ebx + 0xa8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp byte [eax + 0x3c], 0
je 0x5bd21b
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 0x5bd235
mov edx, ebp
add edx, edx
call fcn.00656a70
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 + 0x404], 0
jne 0x5bd272
test ebp, ebp
jle 0x5bd272
mov eax, dword [ebx + 0x134]
cmp esi, dword [eax + 0x18]
jl 0x5bd272
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x24]
add eax, 0xa
cmp eax, dword [esp + 0x1c]
jg 0x5bd3a5
test esi, esi
jl 0x5bd37e
mov eax, dword [ebx + 0x134]
cmp esi, dword [eax + 0x18]
jge 0x5bd32e
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.00656220
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 + 0x146], 0
jne 0x5bd37e
cmp dword [ebx + 0x210], 1
jne 0x5bd37e
mov eax, dword [esi + 0x50]
sub eax, dword [esi + 0x48]
cmp eax, dword [esp + 0xc]
jge 0x5bd37e
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 0x5bd37e
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 0x5bd321
adc eax, 0
mov edx, eax
sub edx, dword [esi + 0x48]
add dword [esi + 0x50], edx
mov dword [esi + 0x48], eax
jmp 0x5bd37e
lea eax, [esi + 1]
mov edx, eax
shl edx, 4
mov eax, dword [ebx + 0x20]
call fcn.00656594
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.00656220
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 + 0x200], eax
inc dword [esp + 0x2c]
dec dword [esp + 0x40]
jne 0x5bcd07
cmp byte [ebx + 0x146], 0
jne 0x5bd3ce
mov eax, dword [0x672428]
test byte [eax + 0x144], 8
je 0x5bd3ce
cmp byte [ebx + 0x145], 0
jne 0x5bd3ce
add dword [ebx + 0x200], 5
jmp 0x5bd3d5
add dword [ebx + 0x200], 0xa
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
cmp eax, dword [ebx + 0x1fc]
jle 0x5bd3f7
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
mov dword [ebx + 0x1fc], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x288]
cmp eax, dword [ebx + 0x200]
jle 0x5bd419
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x288]
mov dword [ebx + 0x200], eax
mov eax, ebx
call fcn.005631e4
test al, al
je 0x5bd446
mov eax, dword [0x672428]
test byte [eax + 0x174], 0x40
je 0x5bd446
mov eax, dword [0x6720b8]
mov eax, dword [eax]
sar eax, 1
jns 0x5bd440
adc eax, 0
add dword [ebx + 0x200], eax
cmp byte [ebx + 0x404], 0
jne 0x5bd465
mov eax, dword [ebx + 0x200]
cmp eax, dword [esp + 0x1c]
jge 0x5bd465
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x200], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [ebx + 0x1fc]
sub edx, dword [eax + 0x284]
mov eax, dword [ebx + 0x204]
call fcn.0065b28c
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [ebx + 0x200]
sub edx, dword [eax + 0x288]
mov eax, dword [ebx + 0x208]
call fcn.0065b28c
mov dword [esp + 4], eax
cmp byte [ebx + 0x3f3], 0
jne 0x5bd5dc
lea edx, [ebx + 0x204]
mov eax, esp
call fcn.006224f4
test al, al
jne 0x5bd4d9
mov dl, 0xd
mov eax, ebx
call fcn.00565be8
mov edx, esp
mov eax, ebx
call fcn.0056272c
mov eax, ebx
call fcn.00565c80
mov eax, dword [esp + 0x3c]
or dword [eax + 0x2cc], 0x8000
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x270]
call fcn.0061a008
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x26c]
call fcn.0061a008
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x270]
mov edx, dword [ebx + 0x1fc]
mov dword [eax + 0x1cc], edx
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x284]
mov edx, 0x5a
call fcn.00629410
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 + 0x200]
mov dword [eax + 0x1cc], edx
mov al, byte [ebx + 0x169]
add al, 0xfd
sub al, 2
jae 0x5bd583
cmp byte [ebx + 0x146], 0
jne 0x5bd583
mov eax, dword [esp + 0x10]
add eax, 0xa
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x26c]
mov dword [edx + 0x1d8], eax
jmp 0x5bd5a7
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x288]
mov edx, 0x5a
call fcn.00629410
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x26c]
mov dword [edx + 0x1d8], eax
mov eax, dword [esp + 0x3c]
call fcn.0044efcc
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x270]
call fcn.0061a030
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x26c]
call fcn.0061a030
mov eax, dword [esp + 0x3c]
and dword [eax + 0x2cc], 0xffff7fff
cmp byte [ebx + 0x3f7], 0
je 0x5bd600
mov eax, ebx
call fcn.005c255c
mov eax, dword [esp + 0x3c]
call fcn.0064a3dc
test al, al
je 0x5bd600
mov eax, ebx
call fcn.005c2e14
mov eax, dword [ebx + 0x1fc]
cmp eax, dword [esp + 0x18]
je 0x5bd61c
cmp byte [ebx + 0x3fa], 0
je 0x5bd61c
mov byte [ebx + 0x3fb], 1
add esp, 0x9c
pop ebp
pop edi
pop esi
pop ebx
ret