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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffed4
xor eax, eax
xor edx, edx
xor ecx, ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], ecx
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], 0
mov byte [ebp - 0x2c], 0
xor eax, eax
xor edx, edx
mov dword [ebp - 0x34], eax
xor eax, eax
mov esi, dword [ebp + 0x10]
lea ebx, [ebp - 0x12c]
add esi, dword [ebp + 0x18]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], edx
lea ecx, [esi - 1]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x4c], 0
jne 0x5f63e5
cmp dword [ebp + 0xc], 0
jne 0x5f63e5
cmp dword [ebp + 0x10], 0
jne 0x5f63e5
cmp dword [ebp + 0x14], 0xfffffc19
jne 0x5f63e5
cmp dword [ebp + 0x18], 0xfffffc19
jne 0x5f63e5
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.005e5780
add esp, 0x1c
jmp 0x5f714a
test dword [ebp + 0x1c], 0xe20f5a6f
je 0x5f63f8
mov eax, 0xfffffffd
jmp 0x5f714a
cmp dword [ebp - 0x4c], 0
je 0x5f6410
cmp dword [ebp + 0x10], 0
je 0x5f6410
cmp dword [ebp + 0x20], 0
jne 0x5f641a
cmp dword [ebp + 0x24], 0
jle 0x5f641a
mov eax, 0xfffffffe
jmp 0x5f714a
cmp dword [ebp + 0x24], 0
jge 0x5f642a
mov eax, 0xfffffff1
jmp 0x5f714a
cmp dword [ebp + 0x14], 0
jge 0x5f643a
mov eax, 0xffffffe0
jmp 0x5f714a
cmp dword [ebp + 0x18], 0
jl 0x5f6448
mov edx, dword [ebp + 0x18]
cmp edx, dword [ebp + 0x14]
jle 0x5f6452
mov eax, 0xffffffe8
jmp 0x5f714a
mov edx, dword [ebp - 0x4c]
cmp dword [edx], 0x50435245
je 0x5f647c
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], 0x45524350
jne 0x5f6472
mov eax, 0xffffffe3
jmp 0x5f714a
mov eax, 0xfffffffc
jmp 0x5f714a
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xc], 1
jne 0x5f648f
mov eax, 0xffffffe4
jmp 0x5f714a
mov edx, dword [ebp - 0x4c]
test byte [edx + 9], 8
setne cl
and ecx, 1
mov dword [ebx + 0x4c], ecx
mov dword [ebp - 0x20], ecx
test byte [ebp + 0x1f], 8
je 0x5f64af
mov eax, 2
jmp 0x5f64be
test byte [ebp + 0x1d], 0x80
je 0x5f64bc
mov eax, 1
jmp 0x5f64be
xor eax, eax
mov dword [ebx + 0x88], eax
cmp dword [ebp - 0x20], 0
je 0x5f655e
test byte [ebp + 0x1d], 0x20
jne 0x5f655e
lea edx, [ebp - 0x50]
push edx
mov ecx, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.005f7c34
add esp, 0xc
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
je 0x5f652f
cmp dword [ebp + 0x24], 2
jl 0x5f650c
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x50]
mov dword [eax], edx
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x54]
mov dword [ecx + 4], eax
cmp dword [ebp - 0x54], 5
jg 0x5f6525
cmp dword [ebx + 0x88], 1
jle 0x5f6525
mov eax, 0xffffffe7
jmp 0x5f714a
mov eax, 0xfffffff6
jmp 0x5f714a
cmp dword [ebp + 0x18], 0
jle 0x5f655e
mov edx, dword [ebp + 0x18]
cmp edx, dword [ebp + 0x14]
jge 0x5f655e
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x18]
xor eax, eax
mov al, byte [ecx + edi]
and eax, 0xc0
cmp eax, 0x80
jne 0x5f655e
mov eax, 0xfffffff5
jmp 0x5f714a
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x22]
add ecx, dword [ebp - 0x4c]
mov dword [ebx + 0x30], ecx
mov ecx, dword [ebp - 0x4c]
movzx eax, word [ecx + 0x26]
mov dword [ebx + 0x20], eax
xor eax, eax
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x24]
mov dword [ebx + 0x24], ecx
mov dword [ebp - 0x48], eax
mov dword [ebx + 4], 0x989680
mov dword [ebx + 8], 0x989680
xor edx, edx
mov dword [ebx + 0xa8], edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x30], eax
cmp dword [ebp + 0xc], 0
je 0x5f65ff
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
mov dword [ebp - 0x58], ecx
test byte [ebp - 0x58], 1
je 0x5f65c0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov dword [ebp - 0x48], edx
test byte [ebp - 0x58], 2
je 0x5f65cf
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
mov dword [ebx + 4], eax
test byte [ebp - 0x58], 0x10
je 0x5f65de
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x14]
mov dword [ebx + 8], ecx
test byte [ebp - 0x58], 4
je 0x5f65f0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
mov dword [ebx + 0xa8], edx
test byte [ebp - 0x58], 8
je 0x5f65ff
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xd], 0x20
je 0x5f661c
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ebx + 4]
jae 0x5f661c
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0x10]
mov dword [ebx + 4], ecx
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xd], 0x40
je 0x5f6639
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0x14]
cmp ecx, dword [ebx + 8]
jae 0x5f6639
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x14]
mov dword [ebx + 8], edx
cmp dword [ebp - 0x30], 0
jne 0x5f6646
mov dword [ebp - 0x30], 0x688d3c
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 8]
or eax, dword [ebp + 0x1c]
test al, 0x10
setne dl
and edx, 1
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xd], 1
setne al
and eax, 1
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xa], 4
setne cl
and ecx, 1
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x4c]
movzx edx, word [eax + 0x26]
mov eax, dword [ebp - 0x4c]
movzx ecx, word [eax + 0x24]
imul edx, ecx
mov eax, dword [ebp - 0x4c]
movzx ecx, word [eax + 0x22]
add ecx, dword [ebp - 0x4c]
add edx, ecx
mov dword [ebx + 0x70], edx
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x74], edx
mov ecx, dword [ebp + 0x18]
mov dword [ebx + 0x94], ecx
mov eax, dword [ebx + 0x74]
add eax, dword [ebp + 0x14]
mov dword [ebx + 0x78], eax
mov edx, dword [ebx + 0x78]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 8], 0x20
setne al
and eax, 1
mov dword [ebx + 0x58], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xb], 0x20
setne cl
and ecx, 1
mov dword [ebx + 0x54], ecx
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xb], 2
setne dl
and edx, 1
xor ecx, ecx
mov dword [ebx + 0x50], edx
mov dword [ebx + 0x2c], ecx
test byte [ebp + 0x1c], 0x80
setne al
and eax, 1
mov dword [ebx + 0x44], eax
test byte [ebp + 0x1d], 1
setne dl
and edx, 1
mov dword [ebx + 0x48], edx
test byte [ebp + 0x1d], 4
setne cl
and ecx, 1
mov dword [ebx + 0x5c], ecx
test byte [ebp + 0x1f], 0x10
setne al
and eax, 1
xor edx, edx
mov dword [ebx + 0x60], eax
xor ecx, ecx
mov dword [ebx + 0x64], edx
mov dword [ebx + 0xb0], ecx
mov dword [ebx + 0xac], ecx
xor eax, eax
mov dword [ebx + 0xa4], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xd], 0x10
setne cl
and ecx, 1
mov dword [ebx + 0x6c], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x38], eax
mov edx, dword [ebp - 0x30]
add edx, 0x100
mov dword [ebx + 0x3c], edx
mov ecx, dword [ebp - 0x30]
add ecx, 0x340
mov dword [ebx + 0x40], ecx
mov eax, dword [ebp + 0x1c]
and eax, 0x1800000
sub eax, 1
jb 0x5f6787
sub eax, 0x7fffff
je 0x5f67ac
sub eax, 0x800000
je 0x5f67b5
jmp 0x5f67bc
mov edx, dword [ebp - 0x4c]
test dword [edx + 8], 0x1800000
je 0x5f67a5
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xa], 0x80
setne al
and eax, 1
mov dword [ebx + 0x68], eax
jmp 0x5f67c6
xor edx, edx
mov dword [ebx + 0x68], edx
jmp 0x5f67c6
mov dword [ebx + 0x68], 1
jmp 0x5f67c6
xor ecx, ecx
mov dword [ebx + 0x68], ecx
jmp 0x5f67c6
mov eax, 0xffffffe9
jmp 0x5f714a
test byte [ebp + 0x1e], 0x70
jne 0x5f67d4
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 8]
jmp 0x5f67d7
mov ecx, dword [ebp + 0x1c]
and ecx, 0x700000
cmp ecx, 0x300000
jg 0x5f67fe
je 0x5f682b
sub ecx, 1
jb 0x5f6810
sub ecx, 0xfffff
je 0x5f6819
sub ecx, 0x100000
je 0x5f6822
jmp 0x5f6846
sub ecx, 0x400000
je 0x5f6834
sub ecx, 0x100000
je 0x5f683d
jmp 0x5f6846
mov dword [ebp - 0xc], 0xa
jmp 0x5f6850
mov dword [ebp - 0xc], 0xd
jmp 0x5f6850
mov dword [ebp - 0xc], 0xa
jmp 0x5f6850
mov dword [ebp - 0xc], 0xd0a
jmp 0x5f6850
mov dword [ebp - 0xc], 0xffffffff
jmp 0x5f6850
mov dword [ebp - 0xc], 0xfffffffe
jmp 0x5f6850
mov eax, 0xffffffe9
jmp 0x5f714a
cmp dword [ebp - 0xc], 0xfffffffe
jne 0x5f685f
mov dword [ebx + 0x18], 2
jmp 0x5f68a6
cmp dword [ebp - 0xc], 0
jge 0x5f686e
mov dword [ebx + 0x18], 1
jmp 0x5f68a6
xor edx, edx
mov dword [ebx + 0x18], edx
cmp dword [ebp - 0xc], 0xff
jle 0x5f6899
mov dword [ebx + 0x1c], 2
mov ecx, dword [ebp - 0xc]
sar ecx, 8
and cl, 0xff
mov byte [ebx + 0x34], cl
mov al, byte [ebp - 0xc]
and al, 0xff
mov byte [ebx + 0x35], al
jmp 0x5f68a6
mov dword [ebx + 0x1c], 1
mov dl, byte [ebp - 0xc]
mov byte [ebx + 0x34], dl
cmp dword [ebx + 0x88], 0
je 0x5f68c2
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xd], 2
je 0x5f68c2
mov eax, 0xfffffff3
jmp 0x5f714a
mov eax, dword [ebp + 0x24]
mov ecx, 3
cdq
idiv ecx
mov eax, dword [ebp + 0x24]
sub eax, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
add eax, eax
mov ecx, 3
cdq
idiv ecx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x4c]
movzx eax, word [ecx + 0x20]
test eax, eax
jle 0x5f6940
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x20]
cmp eax, ecx
jg 0x5f6940
mov eax, dword [ebp - 0x4c]
movzx ecx, word [eax + 0x20]
lea eax, [ecx + ecx*2]
add eax, 3
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
shl edx, 2
push edx
call dword [0x676b2c]
pop ecx
mov dword [ebx + 0xc], eax
cmp dword [ebx + 0xc], 0
jne 0x5f6937
mov eax, 0xfffffffa
jmp 0x5f714a
mov dword [ebp - 0x10], 1
jmp 0x5f6946
mov edx, dword [ebp + 0x20]
mov dword [ebx + 0xc], edx
mov ecx, dword [ebp - 4]
mov dword [ebx + 0x10], ecx
mov eax, dword [ebp - 4]
add eax, eax
mov ecx, 3
cdq
idiv ecx
mov dword [ebx + 0x14], eax
xor ecx, ecx
mov dword [ebx + 0x90], ecx
cmp dword [ebx + 0xc], 0
je 0x5f69c1
mov eax, dword [ebp - 4]
shl eax, 2
add eax, dword [ebx + 0xc]
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x1e]
shl ecx, 2
mov eax, dword [ebp - 0x5c]
sub eax, ecx
mov dword [ebp - 0x60], eax
mov edx, dword [ebx + 0xc]
add edx, 8
cmp edx, dword [ebp - 0x60]
jbe 0x5f69a7
mov ecx, dword [ebx + 0xc]
add ecx, 8
mov dword [ebp - 0x60], ecx
jmp 0x5f69a7
mov eax, dword [ebp - 0x5c]
mov dword [eax], 0xffffffff
sub dword [ebp - 0x5c], 4
mov edx, dword [ebp - 0x5c]
cmp edx, dword [ebp - 0x60]
jae 0x5f699e
mov ecx, dword [ebx + 0xc]
or eax, 0xffffffff
mov dword [ecx + 4], eax
mov edx, dword [ebx + 0xc]
mov dword [edx], eax
cmp dword [ebp - 0x14], 0
jne 0x5f6a1a
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xc], 0x10
je 0x5f69fc
mov dword [ebp - 0x24], 1
mov ecx, dword [ebp - 0x4c]
mov al, byte [ecx + 0x18]
mov byte [ebp - 0x2a], al
mov byte [ebp - 0x29], al
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xc], 0x20
je 0x5f6a1a
xor ecx, ecx
mov cl, byte [ebp - 0x29]
mov edi, dword [ebx + 0x3c]
mov al, byte [edi + ecx]
mov byte [ebp - 0x2a], al
jmp 0x5f6a1a
cmp dword [ebp - 0x18], 0
jne 0x5f6a1a
cmp dword [ebp - 0x48], 0
je 0x5f6a1a
mov edx, dword [ebp - 0x48]
test byte [edx + 4], 1
je 0x5f6a1a
mov ecx, dword [ebp - 0x48]
add ecx, 8
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xc], 0x40
je 0x5f6a4d
mov dword [ebp - 0x28], 1
mov eax, dword [ebp - 0x4c]
mov dl, byte [eax + 0x1a]
mov byte [ebp - 0x2c], dl
mov byte [ebp - 0x2b], dl
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xc], 0x80
je 0x5f6a4d
xor ecx, ecx
mov cl, byte [ebp - 0x2b]
mov edi, dword [ebx + 0x3c]
mov al, byte [edi + ecx]
mov byte [ebp - 0x2c], al
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x64], edx
cmp dword [ebp - 0x1c], 0
je 0x5f6b5a
cmp dword [ebp - 0x20], 0
mov edi, esi
je 0x5f6af3
jmp 0x5f6a84
inc edi
jmp 0x5f6a6f
inc edi
cmp edi, dword [ebp - 0x38]
jae 0x5f6a84
xor eax, eax
mov al, byte [edi]
and eax, 0xc0
cmp eax, 0x80
je 0x5f6a6e
cmp edi, dword [ebx + 0x78]
jae 0x5f6b57
cmp dword [ebx + 0x18], 0
je 0x5f6ac0
cmp edi, dword [ebx + 0x78]
jae 0x5f6ab5
mov edx, dword [ebp - 0x20]
lea ecx, [ebx + 0x1c]
push edx
push ecx
mov ecx, dword [ebx + 0x78]
push ecx
mov eax, dword [ebx + 0x18]
push eax
push edi
call fcn.005f7774
add esp, 0x14
test eax, eax
jne 0x5f6ab9
xor edx, edx
jmp 0x5f6ae8
mov edx, 1
jmp 0x5f6ae8
mov ecx, dword [ebx + 0x78]
sub ecx, dword [ebx + 0x1c]
cmp edi, ecx
ja 0x5f6adf
mov al, byte [edi]
cmp al, byte [ebx + 0x34]
jne 0x5f6adf
cmp dword [ebx + 0x1c], 1
je 0x5f6ae3
mov dl, byte [edi + 1]
cmp dl, byte [ebx + 0x35]
je 0x5f6ae3
xor edx, edx
jmp 0x5f6ae8
mov edx, 1
test edx, edx
je 0x5f6a6b
jmp 0x5f6b57
inc edi
cmp edi, dword [ebx + 0x78]
jae 0x5f6b57
cmp dword [ebx + 0x18], 0
je 0x5f6b2b
cmp edi, dword [ebx + 0x78]
jae 0x5f6b20
mov eax, dword [ebp - 0x20]
lea ecx, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebx + 0x78]
push ecx
mov eax, dword [ebx + 0x18]
push eax
push edi
call fcn.005f7774
add esp, 0x14
test eax, eax
jne 0x5f6b24
xor edx, edx
jmp 0x5f6b53
mov edx, 1
jmp 0x5f6b53
mov ecx, dword [ebx + 0x78]
sub ecx, dword [ebx + 0x1c]
cmp edi, ecx
ja 0x5f6b4a
mov al, byte [edi]
cmp al, byte [ebx + 0x34]
jne 0x5f6b4a
cmp dword [ebx + 0x1c], 1
je 0x5f6b4e
mov dl, byte [edi + 1]
cmp dl, byte [ebx + 0x35]
je 0x5f6b4e
xor edx, edx
jmp 0x5f6b53
mov edx, 1
test edx, edx
je 0x5f6af2
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax + 8]
or ecx, dword [ebp + 0x1c]
test ecx, 0x4000000
jne 0x5f6d2e
cmp dword [ebp - 0x24], 0
je 0x5f6bb4
mov cl, byte [ebp - 0x29]
cmp cl, byte [ebp - 0x2a]
je 0x5f6b9f
jmp 0x5f6b80
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x5f6d2e
mov al, byte [esi]
cmp al, byte [ebp - 0x29]
je 0x5f6d2e
cmp al, byte [ebp - 0x2a]
jne 0x5f6b7f
jmp 0x5f6d2e
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x5f6d2e
mov al, byte [esi]
cmp al, byte [ebp - 0x29]
jne 0x5f6b9e
jmp 0x5f6d2e
cmp dword [ebp - 0x18], 0
je 0x5f6cff
mov edx, dword [ebx + 0x74]
add edx, dword [ebp + 0x18]
cmp esi, edx
jbe 0x5f6d2e
cmp dword [ebp - 0x20], 0
je 0x5f6c6b
jmp 0x5f6bf3
inc esi
jmp 0x5f6bdc
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x5f6bf3
xor ecx, ecx
mov cl, byte [esi]
and ecx, 0xc0
cmp ecx, 0x80
je 0x5f6bdb
cmp esi, dword [ebp - 0x38]
jae 0x5f6cd8
cmp dword [ebx + 0x18], 0
je 0x5f6c2e
mov edi, dword [ebx + 0x74]
cmp esi, edi
jbe 0x5f6c23
mov eax, dword [ebp - 0x20]
push eax
lea edx, [ebx + 0x1c]
push edx
push edi
mov ecx, dword [ebx + 0x18]
push ecx
push esi
call fcn.005f795c
add esp, 0x14
test eax, eax
jne 0x5f6c27
xor ecx, ecx
jmp 0x5f6c60
mov ecx, 1
jmp 0x5f6c60
mov eax, dword [ebx + 0x74]
add eax, dword [ebx + 0x1c]
cmp esi, eax
jb 0x5f6c57
mov edx, esi
sub edx, dword [ebx + 0x1c]
mov cl, byte [edx]
cmp cl, byte [ebx + 0x34]
jne 0x5f6c57
cmp dword [ebx + 0x1c], 1
je 0x5f6c5b
mov eax, esi
sub eax, dword [ebx + 0x1c]
mov dl, byte [eax + 1]
cmp dl, byte [ebx + 0x35]
je 0x5f6c5b
xor ecx, ecx
jmp 0x5f6c60
mov ecx, 1
test ecx, ecx
je 0x5f6bd8
jmp 0x5f6cd8
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x5f6cd8
cmp dword [ebx + 0x18], 0
je 0x5f6ca2
mov edi, dword [ebx + 0x74]
cmp esi, edi
jbe 0x5f6c97
mov eax, dword [ebp - 0x20]
push eax
lea edx, [ebx + 0x1c]
push edx
push edi
mov ecx, dword [ebx + 0x18]
push ecx
push esi
call fcn.005f795c
add esp, 0x14
test eax, eax
jne 0x5f6c9b
xor ecx, ecx
jmp 0x5f6cd4
mov ecx, 1
jmp 0x5f6cd4
mov eax, dword [ebx + 0x74]
add eax, dword [ebx + 0x1c]
cmp esi, eax
jb 0x5f6ccb
mov edx, esi
sub edx, dword [ebx + 0x1c]
mov cl, byte [edx]
cmp cl, byte [ebx + 0x34]
jne 0x5f6ccb
cmp dword [ebx + 0x1c], 1
je 0x5f6ccf
mov eax, esi
sub eax, dword [ebx + 0x1c]
mov dl, byte [eax + 1]
cmp dl, byte [ebx + 0x35]
je 0x5f6ccf
xor ecx, ecx
jmp 0x5f6cd4
mov ecx, 1
test ecx, ecx
je 0x5f6c6a
xor eax, eax
mov al, byte [esi - 1]
cmp eax, 0xd
jne 0x5f6d2e
cmp dword [ebx + 0x18], 1
je 0x5f6cee
cmp dword [ebx + 0x18], 2
jne 0x5f6d2e
cmp esi, dword [ebp - 0x38]
jae 0x5f6d2e
xor edx, edx
mov dl, byte [esi]
cmp edx, 0xa
jne 0x5f6d2e
inc esi
jmp 0x5f6d2e
cmp dword [ebp - 0x34], 0
je 0x5f6d2e
cmp esi, dword [ebp - 0x38]
jae 0x5f6d2e
xor eax, eax
mov al, byte [esi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
shr eax, 3
mov ecx, dword [ebp - 0x34]
movzx eax, byte [ecx + eax]
and edx, eax
jne 0x5f6d2e
inc esi
cmp esi, dword [ebp - 0x38]
jb 0x5f6d0a
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 8]
or eax, dword [ebp + 0x1c]
test eax, 0x4000000
jne 0x5f6df2
cmp dword [ebx + 0x88], 0
jne 0x5f6df2
cmp dword [ebp - 0x48], 0
je 0x5f6d78
mov edx, dword [ebp - 0x48]
test byte [edx + 4], 2
je 0x5f6d78
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x38]
sub ecx, esi
cmp ecx, dword [eax + 0x28]
jae 0x5f6d78
xor edi, edi
jmp 0x5f6f8b
cmp dword [ebp - 0x28], 0
je 0x5f6df2
mov eax, dword [ebp - 0x38]
sub eax, esi
cmp eax, 0x3e8
jge 0x5f6df2
cmp dword [ebp - 0x24], 0
je 0x5f6d97
mov eax, 1
jmp 0x5f6d99
xor eax, eax
add eax, esi
cmp eax, dword [ebp - 0x44]
jbe 0x5f6df2
mov dl, byte [ebp - 0x2b]
cmp dl, byte [ebp - 0x2c]
je 0x5f6dce
cmp eax, dword [ebp - 0x38]
jae 0x5f6de3
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
inc eax
mov cl, byte [ebp - 0x2b]
cmp edx, ecx
je 0x5f6dc4
xor ecx, ecx
mov cl, byte [ebp - 0x2c]
cmp edx, ecx
jne 0x5f6dc7
dec eax
jmp 0x5f6de3
cmp eax, dword [ebp - 0x38]
jb 0x5f6dad
jmp 0x5f6de3
cmp eax, dword [ebp - 0x38]
jae 0x5f6de3
mov dl, byte [eax]
inc eax
cmp dl, byte [ebp - 0x2b]
jne 0x5f6dde
dec eax
jmp 0x5f6de3
cmp eax, dword [ebp - 0x38]
jb 0x5f6dd3
cmp eax, dword [ebp - 0x38]
jb 0x5f6def
xor edi, edi
jmp 0x5f6f8b
mov dword [ebp - 0x44], eax
mov dword [ebx + 0x7c], esi
mov dword [ebx + 0x84], esi
xor eax, eax
mov dword [ebx], eax
xor edx, edx
mov dword [ebx + 0x98], edx
xor ecx, ecx
mov dword [ebx + 0x8c], ecx
xor ecx, ecx
mov dword [ebx + 0x28], ecx
push 0
push 0
push ebx
push 2
push esi
mov eax, dword [ebx + 0x70]
push eax
push esi
call fcn.005e5780
add esp, 0x1c
mov edi, eax
cmp dword [ebx + 0x64], 0
je 0x5f6e43
cmp dword [ebp - 0x3c], 0
jne 0x5f6e43
mov eax, dword [ebx + 0x84]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], esi
mov edx, edi
cmp edx, 0xfffffc1f
jg 0x5f6e62
je 0x5f6e77
sub edx, 0xfffffc1c
je 0x5f6ec4
dec edx
je 0x5f6e8f
dec edx
je 0x5f6e82
jmp 0x5f6f8b
sub edx, 0xfffffc20
je 0x5f6e8f
sub edx, 0x3e0
je 0x5f6e8f
jmp 0x5f6f8b
mov dword [ebp - 0x68], esi
mov ecx, dword [ebx + 0x28]
mov dword [ebx + 0x2c], ecx
jmp 0x5f6ecb
cmp esi, dword [ebx + 0x7c]
jae 0x5f6e8f
mov ecx, dword [ebx + 0x7c]
mov dword [ebp - 0x68], ecx
jmp 0x5f6ecb
xor eax, eax
lea edx, [esi + 1]
mov dword [ebx + 0x2c], eax
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x20], 0
je 0x5f6ecb
jmp 0x5f6ea5
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [ebp - 0x38]
jae 0x5f6ecb
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
and edx, 0xc0
cmp edx, 0x80
je 0x5f6ea2
jmp 0x5f6ecb
xor edi, edi
jmp 0x5f6f8b
xor edi, edi
cmp dword [ebp - 0x1c], 0
je 0x5f6f32
cmp dword [ebx + 0x18], 0
je 0x5f6f06
cmp esi, dword [ebx + 0x78]
jae 0x5f6efb
mov eax, dword [ebp - 0x20]
lea edx, [ebx + 0x1c]
push eax
push edx
mov ecx, dword [ebx + 0x78]
push ecx
mov ecx, dword [ebx + 0x18]
push ecx
push esi
call fcn.005f7774
add esp, 0x14
test eax, eax
jne 0x5f6eff
xor eax, eax
jmp 0x5f6f2e
mov eax, 1
jmp 0x5f6f2e
mov edx, dword [ebx + 0x78]
sub edx, dword [ebx + 0x1c]
cmp esi, edx
ja 0x5f6f25
mov cl, byte [esi]
cmp cl, byte [ebx + 0x34]
jne 0x5f6f25
cmp dword [ebx + 0x1c], 1
je 0x5f6f29
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je 0x5f6f29
xor eax, eax
jmp 0x5f6f2e
mov eax, 1
test eax, eax
jne 0x5f6f8b
cmp dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x68]
jne 0x5f6f8b
cmp esi, dword [ebp - 0x38]
ja 0x5f6f8b
mov eax, dword [ebp + 0x10]
add eax, dword [ebp + 0x18]
cmp esi, eax
jbe 0x5f6f7e
xor edx, edx
mov dl, byte [esi - 1]
cmp edx, 0xd
jne 0x5f6f7e
cmp esi, dword [ebp - 0x38]
jae 0x5f6f7e
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0xa
jne 0x5f6f7e
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xd], 8
jne 0x5f6f7e
cmp dword [ebx + 0x18], 1
je 0x5f6f7d
cmp dword [ebx + 0x18], 2
je 0x5f6f7d
cmp dword [ebx + 0x1c], 2
jne 0x5f6f7e
inc esi
xor eax, eax
mov dword [ebx + 0xac], eax
jmp 0x5f6a4d
cmp edi, 1
je 0x5f6f9c
cmp edi, 0xfffffc19
jne 0x5f70c7
cmp dword [ebp - 0x10], 0
je 0x5f6fe8
cmp dword [ebp - 8], 4
jl 0x5f6fc8
mov edx, dword [ebp - 8]
add edx, 0xfffffffe
shl edx, 2
push edx
mov ecx, dword [ebx + 0xc]
add ecx, 8
push ecx
mov eax, dword [ebp + 0x20]
add eax, 8
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [ebx + 0x8c]
cmp edx, dword [ebp - 8]
jle 0x5f6fdd
or dword [ebx + 0x90], 0x10000
mov ecx, dword [ebx + 0xc]
push ecx
call dword [0x676b30]
pop ecx
test byte [ebx + 0x92], 1
je 0x5f7000
mov eax, dword [ebx + 0x8c]
cmp eax, dword [ebp - 8]
jl 0x5f7000
xor edi, edi
jmp 0x5f700d
mov edi, dword [ebx + 0x8c]
sar edi, 1
jns 0x5f700d
adc edi, 0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebx + 0x8c]
sar ecx, 1
movzx edx, word [eax + 0x1e]
jns 0x5f7021
adc ecx, 0
cmp edx, ecx
jl 0x5f7080
cmp dword [ebp + 0x20], 0
je 0x5f7080
mov ecx, dword [ebp - 0x4c]
movzx eax, word [ecx + 0x1e]
add eax, eax
add eax, 2
mov dword [ebp - 0x74], eax
mov edx, dword [ebp - 0x74]
cmp edx, dword [ebp + 0x24]
jle 0x5f7048
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x74], ecx
mov eax, dword [ebx + 0x8c]
shl eax, 2
add eax, dword [ebp + 0x20]
mov dword [ebp - 0x6c], eax
mov edx, dword [ebp - 0x74]
shl edx, 2
add edx, dword [ebp + 0x20]
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x6c]
cmp ecx, dword [ebp - 0x70]
jae 0x5f7080
mov eax, dword [ebp - 0x6c]
mov dword [eax], 0xffffffff
add dword [ebp - 0x6c], 4
mov edx, dword [ebp - 0x6c]
cmp edx, dword [ebp - 0x70]
jb 0x5f706b
cmp dword [ebp + 0x24], 2
jge 0x5f708a
xor edi, edi
jmp 0x5f70a4
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebp + 0x20]
sub eax, dword [ebx + 0x74]
mov dword [edx], eax
mov ecx, dword [ebx + 0x80]
mov esi, dword [ebp + 0x20]
sub ecx, dword [ebx + 0x74]
mov dword [esi + 4], ecx
cmp dword [ebp + 0xc], 0
je 0x5f70c0
mov eax, dword [ebp + 0xc]
test byte [eax], 0x20
je 0x5f70c0
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x18]
mov ebx, dword [ebx + 0xac]
mov dword [ecx], ebx
mov eax, edi
jmp 0x5f714a
cmp dword [ebp - 0x10], 0
je 0x5f70d8
mov edx, dword [ebx + 0xc]
push edx
call dword [0x676b30]
pop ecx
test edi, edi
je 0x5f70e5
cmp edi, 0xfffffff4
je 0x5f70e5
mov eax, edi
jmp 0x5f714a
cmp dword [ebp - 0x40], 0
je 0x5f7129
xor edx, edx
mov dword [ebx + 0xac], edx
cmp dword [ebp + 0x24], 1
jle 0x5f7122
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp + 0x20]
sub ecx, dword [ebp + 0x10]
mov dword [eax], ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x20]
sub edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
cmp dword [ebp + 0x24], 2
jle 0x5f7122
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp + 0x20]
sub ecx, dword [ebp + 0x10]
mov dword [eax + 8], ecx
mov edi, 0xfffffff4
jmp 0x5f712c
or edi, 0xffffffff
cmp dword [ebp + 0xc], 0
je 0x5f7148
mov eax, dword [ebp + 0xc]
test byte [eax], 0x20
je 0x5f7148
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x18]
mov ebx, dword [ebx + 0xb0]
mov dword [ecx], ebx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret