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

Disassembly:
mov eax, dword [esp + 4]
cmp dword [eax + 0x4001c], 0
jne 0x10065546
mov dword [esp + 4], eax
jmp 0x10068ac0
mov dword [esp + 4], eax
jmp 0x10065560
sub esp, 0x94
push ebp
mov ebp, dword [esp + 0x9c]
push edi
mov edi, dword [esp + 0xb4]
mov eax, dword [ebp + 0x4000c]
sub eax, dword [ebp + 0x40010]
sub eax, dword [ebp + 0x40004]
mov ecx, dword [ebp + 0x40000]
add eax, ecx
cmp eax, 0x10000
jb 0x100655d7
push dword [esp + 0xb8]
mov dword [ebp + 0x4001c], 0
push edi
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push ebp
call 0x10068ac0
add esp, 0x1c
pop edi
pop ebp
add esp, 0x94
ret
test eax, eax
mov eax, dword [esp + 0xac]
push esi
jne 0x10065643
cmp dword [eax], 0x1000
jle 0x10065643
push 0x40020
push dword [ebp + 0x4001c]
push ebp
call fcn.10004eda
mov esi, dword [esp + 0xb4]
push esi
push ebp
call fcn.1006ee00
push dword [esp + 0xd0]
mov edx, dword [esp + 0xc8]
push edi
push dword [esp + 0xd0]
mov word [ebp + 0x40018], di
push edx
push dword [esp + 0xd0]
push esi
push ebp
call 0x10068ac0
add esp, 0x30
pop esi
pop edi
pop ebp
add esp, 0x94
ret
mov edx, dword [esp + 0xb4]
push ebx
mov ebx, dword [esp + 0xc0]
cmp ebx, 2
jne 0x10065669
cmp edx, 1
jge 0x10065669
pop ebx
pop esi
pop edi
xor eax, eax
pop ebp
add esp, 0x94
ret
mov eax, dword [eax]
cmp eax, 0x7e000000
ja 0x1006565c
add eax, ecx
cmp edi, 1
mov dword [ebp + 0x40000], eax
mov ecx, 9
cmovge ecx, edi
mov eax, 0xc
cmp ecx, eax
cmovg ecx, eax
lea eax, [ecx + ecx*2]
movq xmm0, qword [eax*4 + 0x10287ac0]
mov esi, dword [eax*4 + 0x10287ac8]
xor eax, eax
cmp byte [ebp + 0x4001a], al
movq qword [esp + 0x98], xmm0
setne al
cmp dword [esp + 0x98], 0
jne 0x10067fc0
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x4c], 0
mov ecx, dword [eax]
xor eax, eax
cmp dword [esp + 0x9c], 0x80
setg al
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xac]
mov edi, eax
mov ebx, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], ebx
lea esi, [ecx + eax]
lea eax, [esi - 5]
mov dword [esp + 0x74], esi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb0]
mov esi, eax
add eax, edx
mov dword [esp + 0x14], esi
xor edx, edx
cmp dword [esp + 0xc0], 2
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0xb4]
mov dword [edx], 0
lea edx, [eax - 5]
cmovne edx, eax
mov dword [esp + 0x70], edx
cmp ecx, 0xd
jl 0x10067ebf
mov eax, dword [esp + 0x74]
add eax, 0xfffffff4
cmp ebx, eax
ja 0x10067ebf
mov esi, dword [ebp + 0x4001c]
mov ebx, dword [ebp + 0x4000c]
mov edx, dword [ebp + 0x40004]
mov ebp, dword [ebp + 0x40010]
push dword [esp + 0x1c]
mov dword [esp + 0x64], esi
mov esi, ebx
sub esi, edx
mov dword [esp + 0x2c], 3
add esi, edi
mov dword [esp + 0x1c], edx
lea eax, [ebp + 0x10000]
mov dword [esp + 0x54], esi
cmp eax, esi
mov dword [esp + 0x24], ebx
mov edi, ebp
mov dword [esp + 0x7c], ebp
lea ecx, [esi - 0xffff]
mov esi, dword [esp + 0xac]
cmovbe edi, ecx
mov dword [esp + 0x28], edi
mov eax, dword [esi + 0x40008]
mov dword [esp + 0x34], eax
sub eax, ebp
add eax, ebx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x30], eax
call fcn.1006f740
mov esi, dword [esi + 0x40014]
mov ecx, eax
mov ebp, dword [esp + 0x54]
xor eax, eax
add esp, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], eax
cmp esi, ebp
jae 0x10065864
mov edi, esi
sub edi, ebx
mov ebx, dword [esp + 0xa8]
add edi, edx
push edi
call fcn.1006ecc0
lea edx, [ebx + eax*4]
mov ecx, esi
sub ecx, dword [edx]
add esp, 4
cmp ecx, 0xffff
mov eax, 0xffff
cmova ecx, eax
movzx eax, si
inc edi
mov word [ebx + eax*2 + 0x20000], cx
mov dword [edx], esi
inc esi
cmp esi, ebp
jb 0x10065823
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0xa8]
push dword [esp + 0x1c]
mov dword [esi + 0x40014], ebp
call fcn.1006ecc0
add esp, 4
mov ebp, dword [esi + eax*4]
mov dword [esp + 0x3c], ebp
cmp ebp, edi
jb 0x10065e10
mov eax, dword [esp + 0x30]
mov esi, eax
mov edi, dword [esp + 0x78]
sub esi, edi
mov dword [esp + 0x7c], esi
jmp 0x100658ac
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x2c]
test esi, esi
jle 0x10065f98
dec esi
mov dword [esp + 0x2c], esi
cmp ebp, ebx
jb 0x100659dc
mov edi, dword [esp + 0x28]
mov eax, ebp
sub eax, ebx
lea ebx, [eax + edx]
mov edx, dword [esp + 0x1c]
lea eax, [edx - 1]
add eax, edi
push eax
call fcn.1006f730
mov cx, ax
lea eax, [edi - 1]
add eax, ebx
push eax
call fcn.1006f730
add esp, 8
cmp cx, ax
jne 0x10065ba6
push ebx
call fcn.1006f740
mov ecx, dword [esp + 0x14]
add esp, 4
cmp eax, ecx
jne 0x10065c2c
mov edi, dword [esp + 0x34]
lea esi, [ebx + 4]
add edx, 4
add edi, 0xfffffffd
mov dword [esp + 0x48], edx
cmp edx, edi
jae 0x10065965
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100659c0
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10065965
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100659cb
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10065946
mov edi, dword [esp + 0x34]
lea eax, [edi - 1]
cmp edx, eax
jae 0x1006598d
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x1006598d
add edx, 2
add esi, 2
cmp edx, edi
jae 0x10065998
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10065998
inc edx
mov eax, edx
sub eax, dword [esp + 0x48]
mov esi, dword [esp + 0x18]
add eax, 4
mov ecx, dword [esp + 0x10]
cmp eax, dword [esp + 0x28]
jle 0x100659b7
mov dword [esp + 0x28], eax
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x20]
jmp 0x10065bb2
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x1006599e
push ecx
call fcn.1006ef00
sub edx, dword [esp + 0x4c]
add esp, 4
add eax, edx
jmp 0x1006599e
mov esi, ebp
sub esi, edi
add esi, eax
lea eax, [ebx - 4]
cmp ebp, eax
ja 0x10065baa
push esi
call fcn.1006f740
add esp, 4
cmp eax, ecx
jne 0x10065baa
mov ecx, dword [esp + 0x1c]
sub ebx, ebp
add ebx, ecx
cmp ebx, dword [esp + 0x34]
cmova ebx, dword [esp + 0x34]
lea edx, [ecx + 4]
add esi, 4
mov ebp, edx
lea edi, [ebx - 3]
cmp edx, edi
jae 0x10065a64
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10065b66
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10065a64
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10065b74
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10065a41
lea eax, [ebx - 1]
cmp edx, eax
jae 0x10065a88
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10065a88
add edx, 2
add esi, 2
cmp edx, ebx
jae 0x10065a93
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10065a93
inc edx
mov eax, edx
sub eax, ebp
mov edx, dword [esp + 0x1c]
lea ebp, [eax + 4]
add edx, ebp
cmp edx, ebx
jne 0x10065b40
mov edi, dword [esp + 0x34]
cmp ebx, edi
jae 0x10065b40
mov esi, dword [esp + 0x18]
add edi, 0xfffffffd
mov ebx, edx
cmp edx, edi
jae 0x10065b07
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10065b86
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10065b07
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10065b91
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10065ae4
mov edi, dword [esp + 0x34]
lea eax, [edi - 1]
cmp edx, eax
jae 0x10065b2f
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10065b2f
add edx, 2
add esi, 2
cmp edx, edi
jae 0x10065b3a
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10065b3a
inc edx
mov eax, edx
sub eax, ebx
add ebp, eax
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp ebp, dword [esp + 0x28]
jle 0x10065ba0
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x3c]
mov eax, ebp
sub eax, ebx
add eax, esi
mov dword [esp + 0x5c], eax
jmp 0x10065bb2
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10065a97
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10065a97
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10065b3e
push ecx
call fcn.1006ef00
sub edx, ebx
add esp, 4
add eax, edx
jmp 0x10065b3e
mov ebp, dword [esp + 0x3c]
jmp 0x10065bb2
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x90], 0
je 0x10065c41
mov edx, dword [esp + 0xa8]
movzx eax, bp
cmp word [edx + eax*2 + 0x20000], 1
jne 0x10065c41
mov eax, dword [esp + 0x58]
lea edi, [ebp - 1]
test eax, eax
jne 0x10065c6e
mov eax, ecx
xor ebx, ebx
shr eax, 0x18
mov edx, ecx
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x10065c35
push dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push dword [esp + 0x38]
add eax, 4
mov dword [esp + 0x60], 2
push eax
call fcn.1006ec10
add esp, 0xc
add eax, 4
mov dword [esp + 0x68], eax
jmp 0x10065c73
mov ebx, dword [esp + 0x20]
jmp 0x10065bae
mov dword [esp + 0x58], 1
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xa8]
movzx eax, bp
movzx eax, word [ecx + eax*2 + 0x20000]
sub ebp, eax
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], ebp
cmp ebp, edi
jae 0x100658a0
jmp 0x10065e10
cmp eax, 2
jne 0x10065c41
mov ebx, dword [esp + 0x20]
cmp edi, dword [esp + 0x24]
jb 0x10065c41
push edi
push ebx
call fcn.1006ed50
add esp, 8
test eax, eax
je 0x10065c41
mov eax, esi
sub eax, ebx
cmp edi, ebx
cmovb eax, dword [esp + 0x7c]
lea ebx, [eax + edi]
push ebx
call fcn.1006f740
mov ecx, dword [esp + 0x14]
add esp, 4
cmp eax, ecx
jne 0x10065c3d
cmp edi, dword [esp + 0x20]
lea eax, [ebx + 4]
mov ebp, dword [esp + 0x34]
cmovb ebp, dword [esp + 0x54]
push ecx
push ebp
push eax
call fcn.1006ec10
mov ecx, dword [esp + 0x2c]
add esp, 0xc
lea esi, [eax + 4]
cmp edi, ecx
jae 0x10065d56
lea eax, [esi + ebx]
cmp eax, ebp
jne 0x10065d56
push dword [esp + 0x10]
push esi
call fcn.1006ede0
mov ebp, dword [esp + 0x20]
push eax
push dword [esp + 0x40]
push ebp
call fcn.1006ec10
push dword [esp + 0x24]
add esi, eax
cmp edi, dword [esp + 0x38]
mov eax, ebp
cmovb eax, dword [esp + 0x48]
push eax
push ebx
call fcn.1006ed70
add esp, 0x20
mov ebp, eax
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
mov eax, edi
sub eax, ebp
mov ecx, esi
mov ebp, dword [esp + 0x24]
cmp eax, ebp
cmova ebp, eax
sub ecx, ebp
add ecx, edi
cmp ecx, edx
jb 0x10065dad
cmp esi, edx
ja 0x10065dad
sub esi, edx
add esi, edi
push esi
push ebx
call fcn.1006ed50
add esp, 8
mov ebp, ebx
test eax, eax
cmovne ebp, esi
jmp 0x10065c55
push dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp edi, ecx
cmovb eax, dword [esp + 0x34]
push eax
push ebx
call fcn.1006ed70
add esp, 0xc
mov ebp, eax
cmp edi, dword [esp + 0x20]
jb 0x10065d15
sub ebx, ebp
cmp ebx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
jne 0x10065d19
cmp dword [esp + 0x78], ebx
jae 0x10065d19
push dword [esp + 0x10]
neg eax
push eax
call fcn.1006ede0
push eax
push dword [esp + 0x3c]
push dword [esp + 0x64]
call fcn.1006ed70
add esp, 0x14
add ebp, eax
jmp 0x10065d19
push ebp
push ebx
call fcn.1006ed50
add esp, 8
test eax, eax
jne 0x10065dc2
mov ebp, ebx
jmp 0x10065c55
cmp ecx, dword [esp + 0x68]
cmovb edx, ecx
cmp dword [esp + 0x28], edx
jae 0x10065df2
mov ecx, dword [esp + 0x18]
mov eax, ebx
sub eax, ebp
sub eax, ecx
add eax, dword [esp + 0x1c]
cmp eax, 0xffff
ja 0x10065e0c
mov eax, ebp
mov dword [esp + 0x28], edx
sub eax, ebx
add eax, ecx
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0xa8]
movzx eax, bp
movzx eax, word [ecx + eax*2 + 0x20000]
cmp eax, ebp
jbe 0x10065c53
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jle 0x10065f98
mov esi, dword [esp + 0x50]
mov eax, esi
sub eax, edi
cmp eax, 0xffff
jae 0x10065f98
mov ecx, dword [esp + 0x60]
push dword [esp + 0x1c]
mov edx, dword [ecx + 0x40000]
sub edx, dword [ecx + 0x40004]
add edx, dword [ecx + 0x4000c]
mov dword [esp + 0x58], edx
call fcn.1006ecc0
add esp, 4
mov ecx, dword [ecx + eax*4]
mov ebp, ecx
sub ebp, edx
mov dword [esp + 0x58], ecx
add ebp, edi
mov eax, esi
sub eax, ebp
cmp eax, 0xffff
ja 0x10065f98
mov eax, ebx
dec ebx
mov dword [esp + 0x2c], ebx
test eax, eax
je 0x10065f98
mov eax, dword [esp + 0x60]
mov esi, ecx
sub esi, dword [eax + 0x4000c]
add esi, dword [eax + 0x40004]
push esi
call fcn.1006f740
add esp, 4
cmp eax, dword [esp + 0x10]
jne 0x10065f6f
mov edi, edx
sub edi, ecx
mov ecx, dword [esp + 0x1c]
add edi, ecx
cmp edi, dword [esp + 0x34]
cmova edi, dword [esp + 0x34]
lea edx, [ecx + 4]
add esi, 4
mov dword [esp + 0x48], edx
lea ebx, [edi - 3]
cmp edx, ebx
jae 0x10065f13
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10065faf
add edx, 4
add esi, 4
cmp edx, ebx
jae 0x10065f13
nop dword [eax]
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10065fba
add edx, 4
add esi, 4
cmp edx, ebx
jb 0x10065ef0
lea eax, [edi - 1]
cmp edx, eax
jae 0x10065f37
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10065f37
add edx, 2
add esi, 2
cmp edx, edi
jae 0x10065f42
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10065f42
inc edx
mov eax, edx
sub eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
add eax, 4
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x2c]
cmp eax, dword [esp + 0x28]
jle 0x10065f6f
mov dword [esp + 0x28], eax
mov eax, ebp
sub eax, dword [esp + 0x20]
add eax, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
mov esi, dword [esp + 0x60]
movzx eax, cx
movzx eax, word [esi + eax*2 + 0x20000]
mov esi, dword [esp + 0x50]
sub ebp, eax
sub ecx, eax
sub esi, ebp
mov dword [esp + 0x58], ecx
cmp esi, 0xffff
jbe 0x10065e71
mov ecx, dword [esp + 0x28]
cmp ecx, 4
jge 0x10065fce
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x40]
inc edi
jmp 0x10067cc0
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10065f48
push ecx
call fcn.1006ef00
sub edx, dword [esp + 0x4c]
add esp, 4
add eax, edx
jmp 0x10065f48
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x94], eax
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x74]
lea eax, [ecx + esi]
add edx, 0xfffffff4
cmp eax, edx
ja 0x10067b33
mov edi, dword [esp + 0xa8]
lea ebx, [eax - 2]
mov dword [esp + 0x20], ecx
push ebx
mov dword [esp + 0x3c], ebx
mov edx, dword [edi + 0x4000c]
mov esi, edx
mov ecx, dword [edi + 0x40004]
sub esi, ecx
mov eax, dword [edi + 0x4001c]
add esi, ebx
mov edi, dword [edi + 0x40010]
mov ebp, edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x30], ecx
lea ecx, [esi - 0xffff]
mov dword [esp + 0x14], edx
lea eax, [edi + 0x10000]
mov dword [esp + 0x40], esi
cmp eax, esi
mov dword [esp + 0x58], edi
cmovbe ebp, ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x34], ebp
mov ebp, dword [ecx + 0x40008]
mov eax, ebp
sub eax, edi
mov dword [esp + 0x54], ebp
add eax, edx
mov dword [esp + 0x4c], eax
mov eax, ebx
sub eax, dword [esp + 0x20]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x64], eax
call fcn.1006f740
mov esi, dword [ecx + 0x40014]
add esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x80], 0
cmp esi, ecx
jae 0x10066102
mov ebx, dword [esp + 0xa8]
mov edi, esi
sub edi, edx
mov ebp, ecx
add edi, dword [esp + 0x2c]
push edi
call fcn.1006ecc0
lea edx, [ebx + eax*4]
mov ecx, esi
sub ecx, dword [edx]
add esp, 4
cmp ecx, 0xffff
mov eax, 0xffff
cmova ecx, eax
movzx eax, si
inc edi
mov word [ebx + eax*2 + 0x20000], cx
mov dword [edx], esi
inc esi
cmp esi, ebp
jb 0x100660c1
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0xa8]
push ebx
mov dword [eax + 0x40014], ecx
call fcn.1006ecc0
mov ebx, dword [esp + 0xac]
add esp, 4
mov esi, dword [esp + 0x30]
mov edi, dword [ebx + eax*4]
mov dword [esp + 0x24], edi
cmp edi, esi
jb 0x1006679d
mov eax, dword [esp + 0x54]
mov ecx, ebp
sub ecx, eax
mov dword [esp + 0x64], ecx
nop
mov ecx, dword [esp + 0x60]
test ecx, ecx
jle 0x10066980
dec ecx
mov dword [esp + 0x60], ecx
cmp edi, edx
jb 0x100662c9
mov esi, dword [esp + 0x2c]
mov ebp, edi
sub ebp, edx
mov edx, dword [esp + 0x68]
add ebp, esi
mov eax, ebp
mov dword [esp + 0x8c], ebp
sub eax, edx
dec eax
add eax, dword [esp + 0x20]
push eax
call fcn.1006f730
mov cx, ax
mov eax, dword [esp + 0x20]
dec eax
add eax, dword [esp + 0x24]
push eax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x100664f7
push ebp
call fcn.1006f740
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp eax, ecx
jne 0x10066583
mov edi, dword [esp + 0x38]
xor ebx, ebx
test edx, edx
je 0x100661e1
mov edx, dword [esp + 0x1c]
mov eax, esi
sub edx, edi
sub eax, ebp
cmp edx, eax
cmovle edx, eax
test edx, edx
jns 0x100661e1
mov esi, ebp
lea ecx, [edi - 1]
sub esi, edi
mov al, byte [ecx]
cmp al, byte [esi + ecx]
jne 0x100661e1
dec ebx
dec ecx
cmp ebx, edx
jg 0x100661d4
lea edx, [edi + 4]
mov edi, dword [esp + 0x34]
add edi, 0xfffffffd
lea esi, [ebp + 4]
mov ebp, edx
cmp edx, edi
jae 0x1006623a
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100662af
add edx, 4
add esi, 4
cmp edx, edi
jae 0x1006623a
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100662ba
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10066217
mov edi, dword [esp + 0x34]
lea eax, [edi - 1]
cmp edx, eax
jae 0x10066262
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10066262
add edx, 2
add esi, 2
cmp edx, edi
jae 0x1006626d
mov al, byte [esi]
cmp al, byte [edx]
jne 0x1006626d
inc edx
mov eax, edx
sub eax, ebp
mov edi, dword [esp + 0x24]
sub eax, ebx
mov esi, dword [esp + 0x10]
add eax, 4
mov ecx, dword [esp + 0x18]
cmp eax, dword [esp + 0x20]
jle 0x100662a3
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x8c]
add eax, ebx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
add eax, ebx
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0xa8]
jmp 0x10066506
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10066271
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10066271
mov ecx, edi
sub ecx, eax
lea eax, [edx - 4]
add ecx, ebp
mov dword [esp + 0x8c], ecx
cmp edi, eax
ja 0x100664fe
push ecx
call fcn.1006f740
add esp, 4
cmp eax, dword [esp + 0x18]
jne 0x100664fe
mov eax, dword [esp + 0x38]
lea esi, [ecx + 4]
mov ebx, edx
sub ebx, edi
add ebx, eax
cmp ebx, dword [esp + 0x34]
lea edx, [eax + 4]
mov ebp, edx
cmova ebx, dword [esp + 0x34]
lea edi, [ebx - 3]
cmp edx, edi
jae 0x10066363
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100664b7
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10066363
nop dword [eax]
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100664c5
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10066340
lea eax, [ebx - 1]
cmp edx, eax
jae 0x10066387
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10066387
add edx, 2
add esi, 2
cmp edx, ebx
jae 0x10066392
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10066392
inc edx
mov eax, edx
sub eax, ebp
mov edx, dword [esp + 0x38]
lea ebp, [eax + 4]
add edx, ebp
cmp edx, ebx
jne 0x10066441
mov edi, dword [esp + 0x34]
cmp ebx, edi
jae 0x10066441
mov eax, dword [esp + 0x2c]
add edi, 0xfffffffd
mov esi, eax
mov ebx, edx
cmp edx, edi
jae 0x10066408
push eax
call fcn.1006f750
push edx
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100664d7
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10066408
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100664e5
add edx, 4
add esi, 4
cmp edx, edi
jb 0x100663e5
mov edi, dword [esp + 0x34]
lea eax, [edi - 1]
cmp edx, eax
jae 0x10066430
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10066430
add edx, 2
add esi, 2
cmp edx, edi
jae 0x1006643b
mov al, byte [esi]
cmp al, byte [edx]
jne 0x1006643b
inc edx
mov eax, edx
sub eax, ebx
add ebp, eax
mov ebx, dword [esp + 0x38]
xor edx, edx
cmp dword [esp + 0x68], edx
je 0x1006647d
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x8c]
sub esi, ebx
sub eax, edi
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x1006647d
lea ecx, [ebx - 1]
sub edi, ebx
nop
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x1006647d
dec edx
dec ecx
cmp edx, esi
jg 0x10066470
mov esi, dword [esp + 0x10]
sub ebp, edx
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
cmp ebp, dword [esp + 0x20]
jle 0x100662a3
mov dword [esp + 0x20], ebp
lea eax, [edx + ebx]
mov ebx, dword [esp + 0xa8]
mov ebp, edx
sub ebp, esi
mov dword [esp + 0x44], eax
add ebp, edi
add ebp, dword [esp + 0x2c]
mov dword [esp + 0x4c], ebp
jmp 0x10066506
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10066396
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10066396
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x1006643f
push ecx
call fcn.1006ef00
sub edx, ebx
add esp, 4
add eax, edx
jmp 0x1006643f
mov ebx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x90], 0
je 0x1006677b
movzx eax, di
cmp word [ebx + eax*2 + 0x20000], 1
jne 0x1006677b
mov eax, dword [esp + 0x58]
lea ebp, [edi - 1]
test eax, eax
jne 0x100665a3
mov eax, ecx
xor ebx, ebx
shr eax, 0x18
mov edx, ecx
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x1006658f
push dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x38]
add eax, 4
mov dword [esp + 0x60], 2
push eax
call fcn.1006ec10
mov ebx, dword [esp + 0xb4]
add esp, 0xc
add eax, 4
mov dword [esp + 0x80], eax
jmp 0x100665ac
mov ebx, dword [esp + 0xa8]
jmp 0x10066502
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x58], 1
jmp 0x1006677b
cmp eax, 2
jne 0x1006677b
cmp ebp, dword [esp + 0x30]
jb 0x1006677b
push ebp
push esi
call fcn.1006ed50
add esp, 8
test eax, eax
je 0x1006677b
cmp ebp, esi
jae 0x100665d2
mov eax, dword [esp + 0x64]
jmp 0x100665d8
mov eax, dword [esp + 0x2c]
sub eax, esi
lea edi, [eax + ebp]
push edi
call fcn.1006f740
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp eax, ecx
jne 0x10066777
mov ebx, dword [esp + 0x34]
lea eax, [edi + 4]
cmp ebp, esi
push ecx
cmovb ebx, dword [esp + 0x4c]
push ebx
push eax
call fcn.1006ec10
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea esi, [eax + 4]
cmp ebp, ecx
jae 0x10066648
lea eax, [esi + edi]
cmp eax, ebx
jne 0x10066648
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.1006ede0
push eax
push dword [esp + 0x40]
push dword [esp + 0x3c]
call fcn.1006ec10
push ebx
push dword [esp + 0x68]
add esi, eax
push edi
call fcn.1006ed70
add esp, 0x20
mov ebx, eax
jmp 0x10066698
push dword [esp + 0x18]
mov eax, dword [esp + 0x30]
cmp ebp, ecx
cmovb eax, dword [esp + 0x54]
push eax
push edi
call fcn.1006ed70
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ebx, eax
cmp ebp, edx
jb 0x1006669c
sub edi, ebx
cmp edi, dword [esp + 0x2c]
jne 0x1006669c
cmp dword [esp + 0x54], edx
jae 0x1006669c
push dword [esp + 0x18]
neg eax
push eax
call fcn.1006ede0
push eax
push dword [esp + 0x5c]
push dword [esp + 0x58]
call fcn.1006ed70
add esp, 0x14
add ebx, eax
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
mov eax, ebp
sub eax, ebx
mov ecx, esi
mov ebx, dword [esp + 0x80]
cmp eax, edi
cmova edi, eax
sub ecx, edi
mov dword [esp + 0x24], edi
add ecx, ebp
cmp ecx, ebx
jb 0x100666fb
cmp esi, ebx
ja 0x100666fb
sub esi, ebx
add esi, ebp
push esi
push edx
call fcn.1006ed50
add esp, 8
mov edi, edx
test eax, eax
cmovne edi, esi
mov dword [esp + 0x24], edi
mov ebx, dword [esp + 0xa8]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp edi, esi
jae 0x10066140
jmp 0x10066799
push edi
push edx
call fcn.1006ed50
add esp, 8
test eax, eax
jne 0x1006670d
mov edi, edx
jmp 0x100666d7
cmp dword [esp + 0x68], 0
jne 0x100666db
cmp ecx, ebx
mov edx, ebx
cmovb edx, ecx
cmp dword [esp + 0x20], edx
jae 0x10066752
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
sub eax, edi
mov ebx, dword [esp + 0x38]
sub eax, ecx
add eax, ebx
cmp eax, 0xffff
ja 0x10066795
mov dword [esp + 0x20], edx
mov eax, edi
mov edx, dword [esp + 0x10]
sub eax, edx
add eax, ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], eax
jmp 0x10066756
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xa8]
movzx eax, di
movzx eax, word [ebx + eax*2 + 0x20000]
cmp eax, edi
ja 0x10066795
sub edi, eax
mov dword [esp + 0x24], edi
jmp 0x100666e2
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
movzx eax, di
movzx eax, word [ebx + eax*2 + 0x20000]
sub edi, eax
mov dword [esp + 0x24], edi
jmp 0x100666e2
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x60]
test ebp, ebp
jle 0x10066980
mov eax, ecx
sub eax, esi
cmp eax, 0xffff
jae 0x10066980
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x38]
push edi
mov ebx, dword [ecx + 0x40000]
sub ebx, dword [ecx + 0x40004]
add ebx, dword [ecx + 0x4000c]
mov dword [esp + 0x4c], ebx
call fcn.1006ecc0
add esp, 4
mov edx, dword [ecx + eax*4]
mov ecx, edx
mov eax, dword [esp + 0x3c]
sub ecx, ebx
add ecx, esi
mov dword [esp + 0x54], edx
sub eax, ecx
mov dword [esp + 0x30], ecx
cmp eax, 0xffff
ja 0x10066980
mov eax, ebp
dec ebp
mov dword [esp + 0x60], ebp
test eax, eax
je 0x10066980
mov eax, dword [esp + 0x78]
mov ebp, edx
sub ebp, dword [eax + 0x4000c]
add ebp, dword [eax + 0x40004]
push ebp
call fcn.1006f740
add esp, 4
cmp eax, dword [esp + 0x18]
jne 0x10066a09
sub ebx, edx
lea esi, [ebp + 4]
add ebx, edi
lea edx, [edi + 4]
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x80], edx
cmova ebx, dword [esp + 0x34]
lea edi, [ebx - 3]
cmp edx, edi
jae 0x100668a3
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100669e4
add edx, 4
add esi, 4
cmp edx, edi
jae 0x100668a3
nop dword [eax]
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100669f2
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10066880
lea eax, [ebx - 1]
cmp edx, eax
jae 0x100668c7
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x100668c7
add edx, 2
add esi, 2
cmp edx, ebx
jae 0x100668d2
mov al, byte [esi]
cmp al, byte [edx]
jne 0x100668d2
inc edx
mov eax, edx
sub eax, dword [esp + 0x80]
xor edx, edx
lea ebx, [eax + 4]
cmp dword [esp + 0x68], edx
je 0x1006691d
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
sub esi, edi
mov eax, dword [eax + 0x40004]
sub eax, ebp
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x1006691d
lea ecx, [ebp - 1]
sub edi, ebp
nop word [eax + eax]
mov al, byte [edi + ecx]
cmp al, byte [ecx]
jne 0x1006691d
dec edx
dec ecx
cmp edx, esi
jg 0x10066910
mov ecx, dword [esp + 0x30]
sub ebx, edx
mov edi, dword [esp + 0x38]
cmp ebx, dword [esp + 0x20]
jle 0x10066948
mov eax, edx
mov dword [esp + 0x20], ebx
sub eax, dword [esp + 0x10]
add eax, ecx
add eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
lea eax, [edx + edi]
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0x60]
movzx eax, dx
movzx eax, word [esi + eax*2 + 0x20000]
sub edx, eax
sub ecx, eax
mov eax, dword [esp + 0x3c]
sub eax, ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x30], ecx
cmp eax, 0xffff
jbe 0x10066801
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
cmp edi, ebp
je 0x10067b33
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x44]
cmp ecx, esi
jae 0x100669c2
mov edx, dword [esp + 0x7c]
lea eax, [edx + esi]
cmp ebx, eax
jae 0x100669c2
mov eax, dword [esp + 0x94]
mov esi, ecx
mov ebp, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x28], ebp
mov eax, ebx
sub eax, esi
cmp eax, 3
jge 0x10066a16
mov edx, dword [esp + 0x4c]
mov ecx, edi
mov esi, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x5c], edx
jmp 0x10065fe5
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x100668db
push ecx
call fcn.1006ef00
sub edx, dword [esp + 0x84]
add esp, 4
add eax, edx
jmp 0x100668db
mov ecx, dword [esp + 0x30]
jmp 0x10066950
mov dword [esp + 0x20], edi
mov eax, ebx
sub eax, esi
cmp eax, 0x12
jge 0x10066a59
cmp ebp, 0x12
lea ecx, [ebx - 4]
mov eax, 0x12
mov edx, ebp
cmovg edx, eax
add ecx, edi
lea eax, [edx + esi]
cmp eax, ecx
jbe 0x10066a41
mov edx, edi
sub edx, esi
add edx, 0xfffffffc
add edx, ebx
sub edx, ebx
add edx, esi
test edx, edx
jle 0x10066a59
add dword [esp + 0x4c], edx
add ebx, edx
sub edi, edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x74]
lea eax, [edi + ebx]
add ecx, 0xfffffff4
cmp eax, ecx
ja 0x1006783e
mov ebx, dword [esp + 0xa8]
lea ebp, [eax - 3]
mov dword [esp + 0x2c], edi
push ebp
mov dword [esp + 0x3c], ebp
mov edx, dword [ebx + 0x4000c]
mov ecx, edx
mov edi, dword [ebx + 0x40010]
mov esi, dword [ebx + 0x40004]
sub ecx, esi
mov eax, dword [ebx + 0x4001c]
add ecx, ebp
mov dword [esp + 0x7c], eax
mov ebx, edi
mov dword [esp + 0x5c], ecx
lea eax, [edi + 0x10000]
add ecx, 0xffff0001
mov dword [esp + 0x28], esi
cmp eax, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
cmovbe ebx, ecx
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x54], ebx
mov eax, dword [ecx + 0x40008]
mov dword [esp + 0x34], eax
sub eax, edi
add eax, edx
mov dword [esp + 0x84], eax
mov eax, ebp
sub eax, dword [esp + 0x48]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x6c], eax
call fcn.1006f740
mov ebx, ebp
mov dword [esp + 0x1c], eax
sub ebx, esi
xor eax, eax
mov esi, dword [ecx + 0x40014]
add ebx, edx
add esp, 4
mov dword [esp + 0x54], eax
mov dword [esp + 0x6c], eax
cmp esi, ebx
jae 0x10066b76
mov edi, esi
mov ebp, ecx
sub edi, edx
add edi, dword [esp + 0x24]
nop word [eax + eax]
push edi
call fcn.1006ecc0
mov ecx, esi
add esp, 4
lea edx, [eax*4]
mov eax, 0xffff
sub ecx, dword [edx + ebp]
cmp ecx, 0xffff
cmova ecx, eax
movzx eax, si
inc edi
mov word [ebp + eax*2 + 0x20000], cx
mov dword [edx + ebp], esi
inc esi
cmp esi, ebx
jb 0x10066b30
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xa8]
push ebp
mov dword [ecx + 0x40014], ebx
call fcn.1006ecc0
mov esi, dword [esp + 0x54]
add esp, 4
mov edi, dword [ecx + eax*4]
mov dword [esp + 0x3c], edi
cmp edi, esi
jb 0x100671ab
mov eax, dword [esp + 0x30]
mov ecx, eax
mov ebx, dword [esp + 0x48]
sub ecx, ebx
mov dword [esp + 0x8c], ecx
nop dword [eax + eax]
mov ecx, dword [esp + 0x68]
test ecx, ecx
jle 0x10067387
dec ecx
mov dword [esp + 0x68], ecx
cmp edi, edx
jb 0x10066d31
mov ebx, edi
sub ebx, edx
mov edx, dword [esp + 0x24]
add ebx, edx
mov eax, ebx
mov dword [esp + 0x64], ebx
sub eax, dword [esp + 0x60]
dec eax
add eax, dword [esp + 0x2c]
push eax
call fcn.1006f730
mov cx, ax
mov eax, dword [esp + 0x48]
dec eax
add eax, dword [esp + 0x30]
push eax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10066f58
push ebx
call fcn.1006f740
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp eax, ecx
jne 0x10066f52
xor edi, edi
cmp dword [esp + 0x60], edi
je 0x10066c4d
mov eax, edx
mov edx, dword [esp + 0x44]
sub eax, ebx
sub edx, ebp
cmp edx, eax
cmovle edx, eax
test edx, edx
jns 0x10066c4d
mov esi, ebx
lea ecx, [ebp - 1]
sub esi, ebp
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [esi + ecx]
jne 0x10066c4d
dec edi
dec ecx
cmp edi, edx
jg 0x10066c40
lea esi, [ebx + 4]
mov ebx, dword [esp + 0x34]
lea edx, [ebp + 4]
add ebx, 0xfffffffd
mov ebp, edx
cmp edx, ebx
jae 0x10066ca6
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10066d17
add edx, 4
add esi, 4
cmp edx, ebx
jae 0x10066ca6
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10066d22
add edx, 4
add esi, 4
cmp edx, ebx
jb 0x10066c83
mov ebx, dword [esp + 0x34]
lea eax, [ebx - 1]
cmp edx, eax
jae 0x10066cce
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10066cce
add edx, 2
add esi, 2
cmp edx, ebx
jae 0x10066cd9
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10066cd9
inc edx
mov eax, edx
sub eax, ebp
mov esi, dword [esp + 0x10]
sub eax, edi
mov ecx, dword [esp + 0x18]
add eax, 4
cmp eax, dword [esp + 0x2c]
jle 0x10066d0e
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x64]
add eax, edi
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x38]
add eax, edi
mov dword [esp + 0x88], eax
mov edi, dword [esp + 0x3c]
jmp 0x10066f60
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10066cdd
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10066cdd
mov ecx, edi
sub ecx, ebx
add ecx, eax
lea eax, [edx - 4]
mov dword [esp + 0x64], ecx
cmp edi, eax
ja 0x10066f58
push ecx
call fcn.1006f740
add esp, 4
cmp eax, dword [esp + 0x18]
jne 0x10066f58
mov ebx, edx
lea esi, [ecx + 4]
sub ebx, edi
lea edx, [ebp + 4]
add ebx, ebp
mov ebp, edx
cmp ebx, dword [esp + 0x34]
cmova ebx, dword [esp + 0x34]
lea edi, [ebx - 3]
cmp edx, edi
jae 0x10066dc3
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10066f12
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10066dc3
nop word [eax + eax]
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10066f20
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10066da0
lea eax, [ebx - 1]
cmp edx, eax
jae 0x10066de7
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10066de7
add edx, 2
add esi, 2
cmp edx, ebx
jae 0x10066df2
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10066df2
inc edx
mov eax, edx
sub eax, ebp
mov ecx, dword [esp + 0x38]
lea ebp, [eax + 4]
lea edx, [ecx + ebp]
cmp edx, ebx
jne 0x10066ea6
mov edi, dword [esp + 0x34]
cmp ebx, edi
jae 0x10066ea6
mov eax, dword [esp + 0x24]
add edi, 0xfffffffd
mov esi, eax
mov ebx, edx
cmp edx, edi
jae 0x10066e69
push eax
call fcn.1006f750
push edx
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10066f32
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10066e69
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10066f40
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10066e46
mov edi, dword [esp + 0x34]
lea eax, [edi - 1]
cmp edx, eax
jae 0x10066e91
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10066e91
add edx, 2
add esi, 2
cmp edx, edi
jae 0x10066e9c
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10066e9c
inc edx
mov eax, edx
sub eax, ebx
mov ecx, dword [esp + 0x38]
add ebp, eax
xor edx, edx
cmp dword [esp + 0x60], edx
je 0x10066ee1
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x64]
sub esi, ecx
sub eax, edi
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x10066ee1
dec ecx
sub edi, dword [esp + 0x38]
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x10066edd
dec edx
dec ecx
cmp edx, esi
jg 0x10066ed0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x10]
sub ebp, edx
mov edi, dword [esp + 0x3c]
cmp ebp, dword [esp + 0x2c]
jle 0x10066f5c
mov eax, edx
mov dword [esp + 0x2c], ebp
sub eax, esi
add eax, edi
add eax, dword [esp + 0x24]
mov dword [esp + 0x84], eax
lea eax, [edx + ecx]
mov dword [esp + 0x88], eax
jmp 0x10066f5c
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10066df6
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10066df6
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10066ea0
push ecx
call fcn.1006ef00
sub edx, ebx
add esp, 4
add eax, edx
jmp 0x10066ea0
mov esi, dword [esp + 0x10]
jmp 0x10066f60
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x90], 0
je 0x100673d2
mov edx, dword [esp + 0xa8]
movzx eax, di
cmp word [edx + eax*2 + 0x20000], 1
jne 0x100673d2
mov ebx, dword [esp + 0x54]
lea ebp, [edi - 1]
test ebx, ebx
jne 0x10066fe6
mov eax, ecx
mov edx, ecx
shr eax, 0x18
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x10066fd9
push dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
add eax, 4
push ebx
push eax
mov dword [esp + 0x60], 2
call fcn.1006ec10
add esp, 0xc
add eax, 4
mov dword [esp + 0x6c], eax
jmp 0x10066ff3
mov dword [esp + 0x54], 1
jmp 0x100673d2
cmp ebx, 2
jne 0x100673d2
mov ebx, dword [esp + 0x34]
cmp ebp, dword [esp + 0x50]
jb 0x100673d2
push ebp
push esi
call fcn.1006ed50
add esp, 8
test eax, eax
je 0x100673d2
cmp ebp, esi
jae 0x1006701c
mov eax, dword [esp + 0x8c]
jmp 0x10067022
mov eax, dword [esp + 0x24]
sub eax, esi
lea edi, [eax + ebp]
push edi
call fcn.1006f740
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp eax, ecx
jne 0x100673ce
cmp ebp, esi
lea eax, [edi + 4]
push ecx
cmovb ebx, dword [esp + 0x84]
push ebx
push eax
call fcn.1006ec10
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea esi, [eax + 4]
cmp ebp, ecx
jae 0x10067091
lea eax, [esi + edi]
cmp eax, ebx
jne 0x10067091
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.1006ede0
push eax
push dword [esp + 0x40]
push dword [esp + 0x34]
call fcn.1006ec10
push ebx
push dword [esp + 0x48]
add esi, eax
push edi
call fcn.1006ed70
add esp, 0x20
mov ebx, eax
jmp 0x100670e4
push dword [esp + 0x18]
mov eax, dword [esp + 0x28]
cmp ebp, ecx
cmovb eax, dword [esp + 0x34]
push eax
push edi
call fcn.1006ed70
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ebx, eax
cmp ebp, edx
jb 0x100670e8
sub edi, ebx
cmp edi, dword [esp + 0x24]
jne 0x100670e8
cmp dword [esp + 0x48], edx
jae 0x100670e8
push dword [esp + 0x18]
neg eax
push eax
call fcn.1006ede0
push eax
push dword [esp + 0x3c]
push dword [esp + 0x90]
call fcn.1006ed70
add esp, 0x14
add ebx, eax
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x50]
mov eax, ebp
sub eax, ebx
mov ecx, esi
mov ebx, dword [esp + 0x6c]
cmp eax, edi
cmova edi, eax
sub ecx, edi
mov dword [esp + 0x3c], edi
add ecx, ebp
cmp ecx, ebx
jb 0x10067125
cmp esi, ebx
ja 0x10067125
sub esi, ebx
add esi, ebp
push esi
push edx
call fcn.1006ed50
add esp, 8
mov edi, edx
test eax, eax
cmovne edi, esi
jmp 0x100673ea
push edi
push edx
call fcn.1006ed50
add esp, 8
test eax, eax
jne 0x1006713a
mov edi, edx
jmp 0x100673ea
cmp dword [esp + 0x60], 0
jne 0x100673ee
mov ebp, dword [esp + 0x38]
cmp ecx, ebx
mov edx, ebx
cmovb edx, ecx
cmp dword [esp + 0x2c], edx
jae 0x10067189
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
sub eax, edi
sub eax, ecx
add eax, ebp
cmp eax, 0xffff
ja 0x100671a7
mov dword [esp + 0x2c], edx
mov eax, edi
mov edx, dword [esp + 0x10]
sub eax, edx
add eax, ecx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], eax
jmp 0x1006718d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xa8]
movzx eax, di
movzx eax, word [ecx + eax*2 + 0x20000]
cmp eax, edi
jbe 0x100673e8
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x68]
test edi, edi
jle 0x10067387
mov eax, dword [esp + 0x58]
sub eax, esi
cmp eax, 0xffff
jae 0x10067387
mov ecx, dword [esp + 0x78]
push ebp
mov ebx, dword [ecx + 0x40000]
sub ebx, dword [ecx + 0x40004]
add ebx, dword [ecx + 0x4000c]
mov dword [esp + 0x84], ebx
call fcn.1006ecc0
add esp, 4
mov ecx, dword [ecx + eax*4]
mov edx, ecx
mov eax, dword [esp + 0x58]
sub edx, ebx
add edx, esi
mov dword [esp + 0x48], ecx
sub eax, edx
mov dword [esp + 0x30], edx
cmp eax, 0xffff
ja 0x10067387
mov eax, edi
dec edi
mov dword [esp + 0x68], edi
test eax, eax
je 0x10067387
mov eax, dword [esp + 0x78]
mov edi, ecx
sub edi, dword [eax + 0x4000c]
add edi, dword [eax + 0x40004]
push edi
call fcn.1006f740
add esp, 4
cmp eax, dword [esp + 0x18]
jne 0x10067357
sub ebx, ecx
lea edx, [ebp + 4]
add ebx, ebp
mov dword [esp + 0x6c], edx
cmp ebx, dword [esp + 0x34]
lea esi, [edi + 4]
cmova ebx, dword [esp + 0x34]
lea ebp, [ebx - 3]
cmp edx, ebp
jae 0x100672a8
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x1006740b
add edx, 4
add esi, 4
cmp edx, ebp
jae 0x100672a8
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10067419
add edx, 4
add esi, 4
cmp edx, ebp
jb 0x10067285
lea eax, [ebx - 1]
cmp edx, eax
jae 0x100672cc
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x100672cc
add edx, 2
add esi, 2
cmp edx, ebx
jae 0x100672d7
mov al, byte [esi]
cmp al, byte [edx]
jne 0x100672d7
inc edx
mov eax, edx
sub eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x38]
lea ebx, [eax + 4]
xor edx, edx
cmp dword [esp + 0x60], edx
je 0x1006731d
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x44]
sub esi, ebp
mov eax, dword [eax + 0x40004]
sub eax, edi
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x1006731d
lea ecx, [ebp - 1]
sub edi, ebp
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x1006731d
dec edx
dec ecx
cmp edx, esi
jg 0x10067310
mov ecx, dword [esp + 0x48]
sub ebx, edx
cmp ebx, dword [esp + 0x2c]
jle 0x1006734c
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x10]
add eax, dword [esp + 0x24]
add eax, edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x84], eax
lea eax, [edx + ebp]
mov dword [esp + 0x88], eax
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x68]
movzx eax, cx
movzx eax, word [esi + eax*2 + 0x20000]
sub ecx, eax
sub edx, eax
mov eax, dword [esp + 0x58]
sub eax, edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x30], edx
cmp eax, 0xffff
jbe 0x10067210
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
cmp edx, edi
je 0x1006783a
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x88]
lea ecx, [esi + ebp]
lea eax, [ecx + 3]
cmp ebx, eax
jae 0x1006742d
cmp ebx, ecx
jae 0x10067642
mov ecx, dword [esp + 0x84]
mov edi, edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], ecx
jmp 0x10066a12
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
movzx eax, di
movzx eax, word [ecx + eax*2 + 0x20000]
sub edi, eax
mov dword [esp + 0x3c], edi
mov esi, dword [esp + 0x50]
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x48]
cmp edi, esi
jae 0x10066bb0
jmp 0x100671ab
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x100672dd
push ecx
call fcn.1006ef00
sub edx, dword [esp + 0x70]
add esp, 4
add eax, edx
jmp 0x100672dd
mov edx, dword [esp + 0x44]
cmp edx, ecx
jae 0x10067486
mov eax, edx
sub eax, esi
cmp eax, 0x12
jge 0x10067482
cmp ebp, 0x12
lea ecx, [edx - 4]
mov eax, 0x12
cmovg ebp, eax
add ecx, edi
mov dword [esp + 0x28], ebp
lea eax, [esi + ebp]
cmp eax, ecx
jbe 0x10067466
mov ebp, edi
sub ebp, esi
add ebp, 0xfffffffc
add ebp, edx
mov dword [esp + 0x28], ebp
mov eax, ebp
sub eax, edx
add eax, esi
test eax, eax
jle 0x10067486
add dword [esp + 0x4c], eax
add edx, eax
sub edi, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], edi
jmp 0x10067486
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov edi, eax
mov ebx, eax
mov dword [esp + 0x24], edi
mov ebp, eax
mov dword [esp + 0x64], ebx
inc eax
mov dword [esp + 0x6c], ecx
cmp dword [esp + 0xc0], 0
mov dword [esp + 0x14], eax
je 0x100674d4
mov eax, 0x80808081
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 7
add eax, 8
add edx, ecx
add eax, edx
cmp eax, dword [esp + 0x70]
ja 0x10067d13
mov eax, dword [esp + 0x14]
cmp ecx, 0xf
jb 0x1006752c
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1006751f
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x14]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.10002d38
mov eax, dword [esp + 0x20]
add esp, 0xc
add eax, esi
nop dword [eax]
sub ebx, 0xff
sub esi, 1
jne 0x10067510
mov ecx, dword [esp + 0x6c]
mov byte [eax], bl
inc eax
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], eax
jmp 0x10067538
mov al, cl
shl al, 4
mov byte [ebp], al
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
lea edi, [ecx + eax]
mov edx, eax
sub esi, eax
mov eax, dword [esi + edx]
mov ecx, dword [esi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, edi
jb 0x10067543
mov edi, dword [esp + 0x1c]
mov eax, edi
sub eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
add esi, dword [esp + 0x6c]
push eax
push esi
call fcn.1006f9b0
mov ecx, dword [esp + 0x30]
add esi, 2
add esp, 8
mov dword [esp + 0x14], esi
add ecx, 0xfffffffc
cmp dword [esp + 0xc0], 0
je 0x100675a3
mov eax, 0x80808081
mul ecx
lea eax, [esi + 6]
shr edx, 7
add eax, edx
cmp eax, dword [esp + 0x70]
ja 0x10067d0b
mov al, byte [ebx]
cmp ecx, 0xf
jb 0x100675fe
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x100675e3
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax]
nop dword [eax + eax]
mov word [esi], 0xffff
sub ecx, 0x1fe
add esi, 2
sub edx, 1
jne 0x100675d0
cmp ecx, 0xff
jb 0x100675f5
sub ecx, 0xff
mov byte [esi], 0xff
inc esi
mov byte [esi], cl
inc esi
mov dword [esp + 0x14], esi
jmp 0x10067603
add al, cl
mov byte [ebp], al
add edi, dword [esp + 0x28]
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], eax
jmp 0x10066a12
mov esi, dword [esp + 0x44]
cmp esi, ecx
jae 0x1006767a
mov eax, ebp
sub eax, esi
add eax, dword [esp + 0x1c]
add dword [esp + 0x4c], eax
sub edi, eax
add esi, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x44], esi
cmp edi, 4
jge 0x1006767a
mov eax, dword [esp + 0x84]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x14]
mov edi, eax
mov esi, dword [esp + 0x1c]
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x24], edi
sub ecx, dword [esp + 0x40]
mov ebp, eax
inc eax
mov dword [esp + 0x64], ebx
cmp dword [esp + 0xc0], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x6c], ecx
je 0x100676cc
mov eax, 0x80808081
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 7
add eax, 8
add edx, ecx
add eax, edx
cmp eax, dword [esp + 0x70]
ja 0x10067d13
mov eax, dword [esp + 0x14]
cmp ecx, 0xf
jb 0x10067721
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x10067714
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x14]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.10002d38
mov eax, dword [esp + 0x20]
add esp, 0xc
add eax, esi
sub ebx, 0xff
sub esi, 1
jne 0x10067705
mov ecx, dword [esp + 0x6c]
mov byte [eax], bl
inc eax
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], eax
jmp 0x1006772d
mov al, cl
shl al, 4
mov byte [ebp], al
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
lea edi, [ecx + eax]
mov edx, eax
sub esi, eax
nop dword [eax + eax]
mov eax, dword [esi + edx]
mov ecx, dword [esi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, edi
jb 0x10067740
mov edi, dword [esp + 0x1c]
mov eax, edi
sub eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
add esi, dword [esp + 0x6c]
push eax
push esi
call fcn.1006f9b0
mov ecx, dword [esp + 0x30]
add esi, 2
add esp, 8
mov dword [esp + 0x14], esi
add ecx, 0xfffffffc
cmp dword [esp + 0xc0], 0
je 0x100677a0
mov eax, 0x80808081
mul ecx
lea eax, [esi + 6]
shr edx, 7
add eax, edx
cmp eax, dword [esp + 0x70]
ja 0x10067d0b
mov al, byte [ebx]
cmp ecx, 0xf
jb 0x100677ef
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x100677d4
mov eax, 0x80808081
mul ecx
shr edx, 8
mov word [esi], 0xffff
sub ecx, 0x1fe
add esi, 2
sub edx, 1
jne 0x100677c1
cmp ecx, 0xff
jb 0x100677e6
sub ecx, 0xff
mov byte [esi], 0xff
inc esi
mov byte [esi], cl
inc esi
mov dword [esp + 0x14], esi
jmp 0x100677f4
add al, cl
mov byte [ebp], al
mov eax, dword [esp + 0x84]
add edi, dword [esp + 0x28]
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x7c], eax
jmp 0x10065fe5
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
add eax, esi
cmp ebx, eax
jae 0x10067850
mov eax, ebx
sub eax, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov edi, eax
mov ebx, eax
mov dword [esp + 0x24], edi
mov ebp, eax
mov dword [esp + 0x64], ebx
inc eax
mov dword [esp + 0x7c], ecx
cmp dword [esp + 0xc0], 0
mov dword [esp + 0x14], eax
je 0x1006789e
mov eax, 0x80808081
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 7
add eax, 8
add edx, ecx
add eax, edx
cmp eax, dword [esp + 0x70]
ja 0x10067d13
mov eax, dword [esp + 0x14]
cmp ecx, 0xf
jb 0x100678fc
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x100678ef
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x14]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.10002d38
mov eax, dword [esp + 0x20]
add esp, 0xc
add eax, esi
nop word [eax + eax]
sub ebx, 0xff
sub esi, 1
jne 0x100678e0
mov ecx, dword [esp + 0x7c]
mov byte [eax], bl
inc eax
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], eax
jmp 0x10067908
mov al, cl
shl al, 4
mov byte [ebp], al
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
lea edi, [ecx + eax]
mov edx, eax
sub esi, eax
mov eax, dword [esi + edx]
mov ecx, dword [esi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, edi
jb 0x10067913
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
add esi, dword [esp + 0x7c]
push eax
push esi
call fcn.1006f9b0
mov ecx, dword [esp + 0x30]
add esp, 8
add esi, 2
add ecx, 0xfffffffc
cmp dword [esp + 0xc0], 0
je 0x1006796d
mov eax, 0x80808081
mul ecx
lea eax, [esi + 6]
shr edx, 7
add eax, edx
cmp eax, dword [esp + 0x70]
ja 0x10067d0b
mov al, byte [ebx]
cmp ecx, 0xf
jb 0x100679ba
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x100679a3
mov eax, 0x80808081
mul ecx
shr edx, 8
nop
mov word [esi], 0xffff
sub ecx, 0x1fe
add esi, 2
sub edx, 1
jne 0x10067990
cmp ecx, 0xff
jb 0x100679b5
sub ecx, 0xff
mov byte [esi], 0xff
inc esi
mov byte [esi], cl
inc esi
jmp 0x100679bf
add al, cl
mov byte [ebp], al
mov ebx, dword [esp + 0x44]
mov edi, esi
mov esi, dword [esp + 0x1c]
mov ecx, ebx
add esi, dword [esp + 0x28]
sub ecx, esi
mov dword [esp + 0x24], edi
cmp dword [esp + 0xc0], 0
lea ebp, [edi + 1]
mov dword [esp + 0x40], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x7c], ecx
je 0x10067a09
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, ebp
cmp eax, dword [esp + 0x70]
ja 0x10067cdf
cmp ecx, 0xf
jb 0x10067a5e
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x10067a54
mov eax, 0x80808081
mul ebx
mov esi, edx
shr esi, 7
push esi
push 0xff
push ebp
call fcn.10002d38
mov eax, dword [esp + 0x4c]
add esp, 0xc
add ebp, esi
mov dword [esp + 0x40], eax
sub ebx, 0xff
sub esi, 1
jne 0x10067a41
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x40]
mov byte [ebp], bl
inc ebp
mov ebx, dword [esp + 0x44]
jmp 0x10067a69
mov al, cl
mov dword [esp + 0x40], esi
shl al, 4
mov byte [edi], al
mov edx, ebp
lea edi, [ecx + ebp]
sub esi, ebp
mov eax, dword [esi + edx]
mov ecx, dword [esi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, edi
jb 0x10067a70
add ebp, dword [esp + 0x7c]
mov eax, ebx
sub eax, dword [esp + 0x4c]
push eax
push ebp
call fcn.1006f9b0
mov esi, dword [esp + 0x28]
add ebp, 2
add esp, 8
mov dword [esp + 0x14], ebp
cmp dword [esp + 0xc0], 0
lea ecx, [esi - 4]
je 0x10067ac8
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, ebp
cmp eax, dword [esp + 0x70]
ja 0x10067cf7
mov edx, dword [esp + 0x24]
mov al, byte [edx]
cmp ecx, 0xf
jb 0x10067b27
add al, 0xf
sub ecx, 0xf
mov byte [edx], al
cmp ecx, 0x1fe
jb 0x10067b04
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax]
mov word [ebp], 0xffff
sub ecx, 0x1fe
add ebp, 2
sub edx, 1
jne 0x10067af0
cmp ecx, 0xff
jb 0x10067b17
sub ecx, 0xff
mov byte [ebp], 0xff
inc ebp
mov byte [ebp], cl
lea edi, [esi + ebx]
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x10067cba
add al, cl
lea edi, [esi + ebx]
mov byte [edx], al
jmp 0x10067cba
mov eax, dword [esp + 0x14]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov edi, eax
mov ebx, eax
mov dword [esp + 0x24], edi
mov ebp, eax
mov dword [esp + 0x64], ebx
inc eax
mov dword [esp + 0x7c], ecx
cmp dword [esp + 0xc0], 0
mov dword [esp + 0x14], eax
je 0x10067b81
mov eax, 0x80808081
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 7
add eax, 8
add edx, ecx
add eax, edx
cmp eax, dword [esp + 0x70]
ja 0x10067d13
mov eax, dword [esp + 0x14]
cmp ecx, 0xf
jb 0x10067bdc
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x10067bcf
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x14]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.10002d38
mov eax, dword [esp + 0x20]
add esp, 0xc
add eax, esi
nop word [eax + eax]
sub ebx, 0xff
sub esi, 1
jne 0x10067bc0
mov ecx, dword [esp + 0x7c]
mov byte [eax], bl
inc eax
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], eax
jmp 0x10067be8
mov al, cl
shl al, 4
mov byte [ebp], al
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
lea edi, [ecx + eax]
mov edx, eax
sub esi, eax
mov eax, dword [edx + esi]
mov ecx, dword [edx + esi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, edi
jb 0x10067bf3
mov edi, dword [esp + 0x1c]
mov eax, edi
sub eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
add esi, dword [esp + 0x7c]
push eax
push esi
call fcn.1006f9b0
mov ecx, dword [esp + 0x30]
add esi, 2
add esp, 8
mov dword [esp + 0x14], esi
add ecx, 0xfffffffc
cmp dword [esp + 0xc0], 0
je 0x10067c53
mov eax, 0x80808081
mul ecx
lea eax, [esi + 6]
shr edx, 7
add eax, edx
cmp eax, dword [esp + 0x70]
ja 0x10067d0b
mov al, byte [ebx]
cmp ecx, 0xf
jb 0x10067cb1
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
mov ebp, dword [esp + 0x14]
cmp ecx, 0x1fe
jb 0x10067c94
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax + eax]
mov word [ebp], 0xffff
sub ecx, 0x1fe
add ebp, 2
sub edx, 1
jne 0x10067c80
cmp ecx, 0xff
jb 0x10067ca7
sub ecx, 0xff
mov byte [ebp], 0xff
inc ebp
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x10067cb6
add al, cl
mov byte [ebp], al
add edi, dword [esp + 0x28]
mov ebx, edi
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x74]
add eax, 0xfffffff4
mov dword [esp + 0x1c], edi
cmp edi, eax
ja 0x10067ebb
mov ebp, dword [esp + 0xa8]
jmp 0x10065773
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x20]
mov ebp, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
jmp 0x10067d17
mov eax, dword [esp + 0x4c]
mov ebp, esi
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
jmp 0x10067d17
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
cmp dword [esp + 0xc0], 2
jne 0x10067f0a
mov ebx, esi
mov dword [esp + 0x14], edi
sub ebx, dword [esp + 0x40]
mov eax, 0x80808081
mov esi, dword [esp + 0x70]
mov dword [esp + 0x64], ebx
lea ecx, [ebx + 0xf0]
mul ecx
lea ecx, [esi - 3]
shr edx, 7
inc edx
add edx, ebx
lea eax, [edx + edi]
cmp eax, ecx
ja 0x10067e87
sub ecx, edx
sub ecx, edi
imul eax, ecx, 0xff
add eax, 0x12
cmp ebp, eax
cmova ebp, eax
mov eax, esi
sub eax, edx
mov dword [esp + 0x28], ebp
sub eax, edi
add eax, 2
add eax, ebp
cmp eax, 0xc
jl 0x10067e87
lea ebp, [edi + 1]
cmp ebx, 0xf
jb 0x10067dca
add ebx, 0xfffffff1
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x10067dc0
mov eax, 0x80808081
mul ebx
mov esi, edx
shr esi, 7
push esi
push 0xff
push ebp
call fcn.10002d38
add esp, 0xc
add ebp, esi
sub ebx, 0xff
sub esi, 1
jne 0x10067db5
mov byte [ebp], bl
inc ebp
mov ebx, dword [esp + 0x64]
jmp 0x10067dd1
mov al, bl
shl al, 4
mov byte [edi], al
mov edi, dword [esp + 0x40]
lea esi, [ebx + ebp]
mov edx, ebp
sub edi, ebp
nop dword [eax]
mov eax, dword [edi + edx]
mov ecx, dword [edi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x10067de0
mov edx, dword [esp + 0x1c]
add ebp, ebx
mov eax, edx
sub eax, dword [esp + 0x5c]
push eax
push ebp
call fcn.1006f9b0
mov ebx, dword [esp + 0x30]
add ebp, 2
mov edi, dword [esp + 0x2c]
add esp, 8
mov dword [esp + 0x14], ebp
lea ecx, [ebx - 4]
mov al, byte [edi]
cmp ecx, 0xf
jb 0x10067e7b
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x10067e58
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax + eax]
mov word [ebp], 0xffff
sub ecx, 0x1fe
add ebp, 2
sub edx, 1
jne 0x10067e40
mov edx, dword [esp + 0x1c]
cmp ecx, 0xff
jb 0x10067e6b
sub ecx, 0xff
mov byte [ebp], 0xff
inc ebp
mov byte [ebp], cl
inc ebp
add ebx, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x40], ebx
jmp 0x10067e8b
add al, cl
add ebx, edx
mov byte [edi], al
mov dword [esp + 0x40], ebx
jmp 0x10067e8b
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x74]
mov eax, 0x80808081
mov ebp, dword [esp + 0x70]
sub esi, ebx
mov dword [esp + 0x74], esi
lea ecx, [esi + 0xf0]
mul ecx
mov ecx, dword [esp + 0xc0]
shr edx, 7
add edx, esi
mov esi, dword [esp + 0x14]
add ebp, 5
jmp 0x10067efc
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x74]
mov eax, 0x80808081
sub edi, ebx
mov dword [esp + 0x74], edi
lea ecx, [edi + 0xf0]
mul ecx
mov ecx, dword [esp + 0xc0]
shr edx, 7
add edx, edi
cmp ecx, 2
jne 0x10067ef4
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x14]
add ebp, 5
jmp 0x10067efc
test ecx, ecx
je 0x10067f2e
mov ebp, dword [esp + 0x70]
lea eax, [esi + 1]
add eax, edx
cmp eax, ebp
jbe 0x10067f2e
cmp ecx, 1
jne 0x10067f18
mov ebp, dword [esp + 0xa8]
xor eax, eax
jmp 0x10067ff4
mov ecx, ebp
sub ecx, esi
dec ecx
lea eax, [ecx + 0xf1]
shr eax, 8
sub ecx, eax
mov dword [esp + 0x74], ecx
jmp 0x10067f32
mov ecx, dword [esp + 0x74]
lea ebp, [ecx + ebx]
lea edi, [esi + 1]
cmp ecx, 0xf
jb 0x10067f88
lea ebx, [ecx - 0xf]
mov byte [esi], 0xf0
cmp ebx, 0xff
jb 0x10067f7f
mov eax, 0x80808081
mul ebx
mov esi, edx
shr esi, 7
push esi
push 0xff
push edi
call fcn.10002d38
add esp, 0xc
add edi, esi
nop dword [eax + eax]
sub ebx, 0xff
sub esi, 1
jne 0x10067f70
mov ecx, dword [esp + 0x74]
mov byte [edi], bl
inc edi
mov ebx, dword [esp + 0x40]
jmp 0x10067f8f
mov al, cl
shl al, 4
mov byte [esi], al
push ecx
push ebx
push edi
call fcn.10004eda
mov eax, dword [esp + 0xc0]
add esp, 0xc
sub ebp, dword [esp + 0xac]
mov dword [eax], ebp
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0xb0]
mov ebp, dword [esp + 0xa8]
add eax, edi
jmp 0x10067ff4
push eax
push 1
xor eax, eax
cmp ecx, 0xc
sete al
push eax
push ebx
push esi
push dword [esp + 0xb0]
push edx
push dword [esp + 0xd0]
push dword [esp + 0xd0]
push dword [esp + 0xd0]
push ebp
call fcn.1006b7f0
add esp, 0x2c
test eax, eax
jg 0x10067fff
mov byte [ebp + 0x4001b], 1
pop ebx
pop esi
pop edi
pop ebp
add esp, 0x94
ret
mov edx, dword [esp + 0x14]
sub esp, 0x8c
push ebx
mov ebx, dword [esp + 0xac]
push esi
mov esi, dword [esp + 0xac]
cmp ebx, 2
jne 0x10068aef
cmp edx, 1
jge 0x10068aef
pop esi
xor eax, eax
pop ebx
add esp, 0x8c
ret
push ebp
mov ebp, dword [esp + 0xa8]
mov eax, dword [ebp]
cmp eax, 0x7e000000
jbe 0x10068b0d
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x8c
ret
push edi
mov edi, dword [esp + 0xa0]
mov ecx, 9
add dword [edi + 0x40000], eax
cmp esi, 1
mov eax, 0xc
cmovge ecx, esi
cmp ecx, eax
cmovg ecx, eax
lea eax, [ecx + ecx*2]
movq xmm0, qword [eax*4 + 0x10287ac0]
mov esi, dword [eax*4 + 0x10287ac8]
xor eax, eax
cmp byte [edi + 0x4001a], al
movq qword [esp + 0x90], xmm0
setne al
cmp dword [esp + 0x90], 0
jne 0x1006ae9f
mov ecx, dword [ebp]
xor eax, eax
cmp dword [esp + 0x94], 0x80
mov dword [esp + 0x50], 0
setg al
mov dword [esp + 0x3c], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa4]
mov esi, eax
mov ebp, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x44], 0
lea ebx, [ecx + eax]
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x20], ebx
mov ebx, eax
add eax, edx
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0xac]
cmp dword [esp + 0xb8], 2
mov dword [esp + 0x64], 0
mov dword [edx], 0
lea edx, [eax - 5]
cmovne edx, eax
mov dword [esp + 0x54], edx
cmp ecx, 0xd
jl 0x1006adae
mov eax, dword [esp + 0x20]
add eax, 0xfffffff4
cmp esi, eax
ja 0x1006adae
nop word [eax + eax]
mov edx, dword [edi + 0x40004]
mov edi, dword [edi + 0x4000c]
mov ebx, edi
mov eax, dword [esp + 0xa0]
sub ebx, edx
push dword [esp + 0x14]
add ebx, esi
mov dword [esp + 0x20], 3
mov dword [esp + 0x28], edx
mov esi, dword [eax + 0x40010]
mov ebp, esi
mov dword [esp + 0x2c], edi
lea ecx, [ebx - 0xffff]
mov dword [esp + 0x60], esi
lea eax, [esi + 0x10000]
cmp eax, ebx
mov eax, dword [esp + 0xa4]
cmovbe ebp, ecx
mov dword [esp + 0x44], ebp
mov eax, dword [eax + 0x40008]
mov dword [esp + 0x4c], eax
sub eax, esi
mov dword [esp + 0x84], eax
add eax, edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x6c], eax
call fcn.1006f740
mov ecx, eax
mov dword [esp + 0x64], 0
xor eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], eax
add esp, 4
mov eax, dword [esp + 0xa0]
mov esi, dword [eax + 0x40014]
cmp esi, ebx
jae 0x10068d0e
mov edi, esi
mov ebp, eax
sub edi, dword [esp + 0x28]
add edi, edx
push edi
call fcn.1006ecc0
mov ecx, esi
add esp, 4
lea edx, [eax*4]
mov eax, 0xffff
sub ecx, dword [edx + ebp]
cmp ecx, 0xffff
cmova ecx, eax
movzx eax, si
inc edi
mov word [ebp + eax*2 + 0x20000], cx
mov dword [edx + ebp], esi
inc esi
cmp esi, ebx
jb 0x10068cc0
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
push esi
mov dword [eax + 0x40014], ebx
call fcn.1006ecc0
mov ebx, dword [esp + 0xa4]
add esp, 4
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x30], ebx
cmp ebx, ebp
jb 0x1006912a
nop word [eax + eax]
mov eax, dword [esp + 0x68]
test eax, eax
jle 0x1006912a
dec eax
mov dword [esp + 0x68], eax
cmp ebx, edi
jb 0x10068e7d
mov ecx, dword [esp + 0x1c]
mov ebp, ebx
sub ebp, edi
add ebp, edx
lea eax, [ecx - 1]
add eax, esi
push eax
call fcn.1006f730
dec ecx
mov dx, ax
add ecx, ebp
push ecx
call fcn.1006f730
add esp, 8
cmp dx, ax
jne 0x10069066
push ebp
call fcn.1006f740
mov ecx, dword [esp + 0x14]
add esp, 4
cmp eax, ecx
jne 0x10069060
mov edi, dword [esp + 0x20]
lea esi, [ebp + 4]
mov edx, dword [esp + 0x14]
add edi, 0xfffffffb
add edx, 4
add edi, 0xfffffffd
mov dword [esp + 0x58], edx
cmp edx, edi
jae 0x10068dff
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10068e61
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10068dff
nop word [eax + eax]
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10068e6c
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10068de0
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
lea eax, [edi - 1]
cmp edx, eax
jae 0x10068e2a
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10068e2a
add edx, 2
add esi, 2
cmp edx, edi
jae 0x10068e35
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10068e35
inc edx
mov eax, edx
sub eax, dword [esp + 0x58]
mov edi, dword [esp + 0x28]
add eax, 4
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
cmp eax, dword [esp + 0x1c]
jle 0x1006906e
mov dword [esp + 0x1c], eax
mov dword [esp + 0x50], ebp
jmp 0x1006906e
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10068e3b
push ecx
call fcn.1006ef00
sub edx, dword [esp + 0x5c]
add esp, 4
add eax, edx
jmp 0x10068e3b
mov esi, ebx
lea eax, [edi - 4]
sub esi, dword [esp + 0x5c]
add esi, dword [esp + 0x48]
cmp ebx, eax
ja 0x10069066
push esi
call fcn.1006f740
add esp, 4
cmp eax, ecx
jne 0x10069066
mov edx, dword [esp + 0x14]
mov eax, edi
mov ecx, dword [esp + 0x20]
sub eax, ebx
add eax, edx
add ecx, 0xfffffffb
cmp eax, ecx
mov ebp, ecx
cmovbe ebp, eax
add edx, 4
add esi, 4
mov dword [esp + 0x58], edx
lea edi, [ebp - 3]
cmp edx, edi
jae 0x10068f13
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069024
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10068f13
nop
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069032
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10068ef0
lea eax, [ebp - 1]
cmp edx, eax
jae 0x10068f37
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10068f37
add edx, 2
add esi, 2
cmp edx, ebp
jae 0x10068f42
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10068f42
inc edx
mov eax, edx
sub eax, dword [esp + 0x58]
mov edx, dword [esp + 0x14]
lea ecx, [eax + 4]
add edx, ecx
mov dword [esp + 0x84], ecx
cmp edx, ebp
jne 0x10069006
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
cmp ebp, edi
jae 0x10069006
mov esi, dword [esp + 0x24]
add edi, 0xfffffffd
mov ebp, edx
cmp edx, edi
jae 0x10068fc3
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069046
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10068fc3
nop
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069051
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10068fa0
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
lea eax, [edi - 1]
cmp edx, eax
jae 0x10068fee
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10068fee
add edx, 2
add esi, 2
cmp edx, edi
jae 0x10068ff9
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10068ff9
inc edx
mov eax, edx
sub eax, ebp
mov ecx, dword [esp + 0x84]
add ecx, eax
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
cmp ecx, dword [esp + 0x1c]
jle 0x1006906a
mov eax, ebx
mov dword [esp + 0x1c], ecx
sub eax, edi
add eax, esi
mov dword [esp + 0x50], eax
jmp 0x1006906a
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10068f48
push ecx
call fcn.1006ef00
sub edx, dword [esp + 0x5c]
add esp, 4
add eax, edx
jmp 0x10068f48
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10068ffd
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10068ffd
mov esi, dword [esp + 0x24]
jmp 0x1006906e
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x88], 0
je 0x100690fc
mov edx, dword [esp + 0xa0]
movzx eax, bx
cmp word [edx + eax*2 + 0x20000], 1
jne 0x100690fc
mov eax, dword [esp + 0x60]
lea ebp, [ebx - 1]
test eax, eax
jne 0x10069145
mov eax, ecx
xor ebx, ebx
shr eax, 0x18
mov edx, ecx
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x100690f0
push dword [esp + 0x10]
mov eax, dword [esp + 0x24]
add eax, 0xfffffffb
mov dword [esp + 0x64], 2
push eax
mov eax, dword [esp + 0x1c]
add eax, 4
push eax
call fcn.1006ec10
mov ebx, dword [esp + 0x3c]
add esp, 0xc
add eax, 4
mov dword [esp + 0x2c], eax
jmp 0x1006914a
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x60], 1
mov ecx, dword [esp + 0xa0]
movzx eax, bx
movzx eax, word [ecx + eax*2 + 0x20000]
sub ebx, eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x30], ebx
cmp ebx, dword [esp + 0x40]
jae 0x10068d40
mov ecx, dword [esp + 0x1c]
cmp ecx, 4
jge 0x100692eb
mov ebx, dword [esp + 0x18]
inc esi
mov ebp, dword [esp + 0x38]
jmp 0x1006ab9f
cmp eax, 2
jne 0x100690fc
cmp ebp, dword [esp + 0x40]
jb 0x100690fc
push ebp
push edi
call fcn.1006ed50
add esp, 8
test eax, eax
je 0x100690fc
mov eax, esi
mov esi, dword [esp + 0x80]
sub eax, edi
cmp ebp, edi
cmovae esi, eax
add esi, ebp
push esi
call fcn.1006f740
mov ecx, dword [esp + 0x14]
add esp, 4
cmp eax, ecx
jne 0x100690fc
mov ebx, dword [esp + 0x20]
lea eax, [esi + 4]
add ebx, 0xfffffffb
cmp ebp, edi
push ecx
cmovb ebx, dword [esp + 0x38]
push ebx
push eax
call fcn.1006ec10
mov edx, dword [esp + 0x34]
add esp, 0xc
lea edi, [eax + 4]
cmp ebp, edx
jae 0x100691ef
lea ecx, [edi + esi]
cmp ecx, ebx
jne 0x100691ef
push dword [esp + 0x10]
push edi
call fcn.1006ede0
mov ebx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffb
push eax
push ebx
call fcn.1006ec10
push dword [esp + 0x24]
add edi, eax
cmp ebp, dword [esp + 0x40]
mov eax, ebx
cmovb eax, dword [esp + 0x60]
push eax
push esi
call fcn.1006ed70
add esp, 0x20
mov ebx, eax
jmp 0x10069241
push dword [esp + 0x10]
mov eax, dword [esp + 0x28]
cmp ebp, edx
cmovb eax, dword [esp + 0x4c]
push eax
push esi
call fcn.1006ed70
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x28]
cmp ebp, eax
jb 0x10069241
sub esi, ebx
cmp esi, dword [esp + 0x24]
jne 0x10069241
cmp dword [esp + 0x5c], eax
jae 0x10069241
push dword [esp + 0x10]
mov eax, ebx
neg eax
push eax
call fcn.1006ede0
push eax
push dword [esp + 0x54]
push dword [esp + 0x44]
call fcn.1006ed70
add esp, 0x14
add ebx, eax
mov esi, dword [esp + 0x2c]
mov eax, ebp
sub eax, ebx
mov ecx, edi
mov ebx, dword [esp + 0x40]
cmp eax, ebx
cmova ebx, eax
sub ecx, ebx
add ecx, ebp
cmp ecx, esi
jb 0x1006927d
cmp edi, esi
ja 0x1006927d
sub edi, esi
lea ebx, [edi + ebp]
mov edi, dword [esp + 0x28]
push ebx
push edi
call fcn.1006ed50
add esp, 8
test eax, eax
cmove ebx, edi
jmp 0x10069110
mov edi, dword [esp + 0x28]
push ebx
push edi
call fcn.1006ed50
add esp, 8
test eax, eax
jne 0x10069296
mov ebx, edi
jmp 0x10069110
cmp ecx, esi
mov edx, esi
mov esi, dword [esp + 0x14]
cmovb edx, ecx
cmp dword [esp + 0x1c], edx
jae 0x100692cc
mov ecx, dword [esp + 0x24]
mov eax, edi
sub eax, ebx
sub eax, ecx
add eax, esi
cmp eax, 0xffff
ja 0x1006912a
mov eax, ebx
mov dword [esp + 0x1c], edx
sub eax, edi
add eax, ecx
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0xa0]
movzx eax, bx
movzx eax, word [ecx + eax*2 + 0x20000]
cmp eax, ebx
ja 0x1006912a
jmp 0x1006910e
mov eax, dword [esp + 0x50]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x20]
lea eax, [ecx + esi]
add edx, 0xfffffff4
mov dword [esp + 0x8c], eax
cmp eax, edx
ja 0x1006aa29
mov dword [esp + 0x24], ecx
lea edx, [eax - 2]
mov ecx, dword [esp + 0xa0]
push edx
mov dword [esp + 0x30], edx
mov edi, dword [ecx + 0x4000c]
mov ebx, edi
mov esi, dword [ecx + 0x40010]
mov ebp, dword [ecx + 0x40004]
sub ebx, ebp
add ebx, edx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x34], ebp
lea eax, [esi + 0x10000]
mov dword [esp + 0x2c], edi
cmp eax, ebx
lea ecx, [ebx - 0xffff]
cmovbe esi, ecx
mov ecx, edx
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x4c], ecx
mov eax, dword [esi + 0x40008]
mov dword [esp + 0x44], eax
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
add eax, edi
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x6c], eax
call fcn.1006f740
mov esi, dword [esi + 0x40014]
mov edx, eax
xor eax, eax
mov dword [esp + 0x14], edx
add esp, 4
mov dword [esp + 0x60], 0
mov dword [esp + 0x78], eax
cmp esi, ebx
jae 0x10069415
mov edi, esi
sub edi, dword [esp + 0x28]
add edi, ebp
mov ebp, dword [esp + 0xa0]
nop
push edi
call fcn.1006ecc0
mov ecx, esi
add esp, 4
lea edx, [eax*4]
mov eax, 0xffff
sub ecx, dword [edx + ebp]
cmp ecx, 0xffff
cmova ecx, eax
movzx eax, si
inc edi
mov word [ebp + eax*2 + 0x20000], cx
mov dword [edx + ebp], esi
inc esi
cmp esi, ebx
jb 0x100693d0
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
jmp 0x1006941c
mov ebp, dword [esp + 0xa0]
mov esi, dword [esp + 0x2c]
push esi
mov dword [ebp + 0x40014], ebx
call fcn.1006ecc0
add esp, 4
mov ebx, dword [ebp + eax*4]
mov dword [esp + 0x34], ebx
cmp ebx, dword [esp + 0x5c]
jb 0x10069a20
mov eax, dword [esp + 0x68]
test eax, eax
jle 0x10069a20
dec eax
mov dword [esp + 0x68], eax
cmp ebx, edi
jb 0x100695c9
mov ebp, ebx
sub ebp, edi
add ebp, dword [esp + 0x30]
mov eax, ebp
mov dword [esp + 0x70], ebp
sub eax, ecx
mov ecx, dword [esp + 0x24]
dec eax
add eax, ecx
push eax
call fcn.1006f730
dec ecx
mov dx, ax
add ecx, dword [esp + 0x18]
push ecx
call fcn.1006f730
add esp, 8
cmp ax, dx
jne 0x10069887
push ebp
call fcn.1006f740
mov ecx, dword [esp + 0x14]
add esp, 4
cmp eax, ecx
jne 0x100697be
mov edi, dword [esp + 0x2c]
xor ebx, ebx
cmp dword [esp + 0x48], ebx
je 0x100694dd
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
sub edx, esi
sub eax, ebp
cmp edx, eax
cmovle edx, eax
test edx, edx
jns 0x100694dd
lea ecx, [esi - 1]
mov esi, ebp
sub esi, edi
nop
mov al, byte [ecx]
cmp al, byte [esi + ecx]
jne 0x100694dd
dec ebx
dec ecx
cmp ebx, edx
jg 0x100694d0
lea edx, [edi + 4]
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
lea esi, [ebp + 4]
add edi, 0xfffffffd
mov ebp, edx
cmp edx, edi
jae 0x10069539
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100695af
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10069539
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x100695ba
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10069516
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
lea eax, [edi - 1]
cmp edx, eax
jae 0x10069564
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10069564
add edx, 2
add esi, 2
cmp edx, edi
jae 0x1006956f
mov al, byte [esi]
cmp al, byte [edx]
jne 0x1006956f
inc edx
mov eax, edx
sub eax, ebp
mov esi, dword [esp + 0x2c]
sub eax, ebx
mov edi, dword [esp + 0x28]
add eax, 4
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xa0]
cmp eax, dword [esp + 0x24]
jle 0x100695a6
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x70]
add eax, ebx
mov dword [esp + 0x44], eax
lea eax, [ebx + esi]
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x34]
jmp 0x100697c5
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10069573
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10069573
mov ecx, ebx
lea eax, [edi - 4]
sub ecx, dword [esp + 0x58]
add ecx, dword [esp + 0x40]
mov dword [esp + 0x70], ecx
cmp ebx, eax
ja 0x10069890
push ecx
call fcn.1006f740
add esp, 4
cmp eax, edx
jne 0x10069890
mov edx, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
add edx, 0xfffffffb
add eax, esi
mov ebx, edx
cmp eax, edx
lea esi, [ecx + 4]
mov edx, dword [esp + 0x2c]
cmovbe ebx, eax
add edx, 4
mov ebp, edx
lea edi, [ebx - 3]
cmp edx, edi
jae 0x10069663
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069847
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10069663
nop dword [eax]
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069855
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10069640
lea eax, [ebx - 1]
cmp edx, eax
jae 0x10069687
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10069687
add edx, 2
add esi, 2
cmp edx, ebx
jae 0x10069692
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10069692
inc edx
mov eax, edx
sub eax, ebp
mov ecx, dword [esp + 0x2c]
lea ebp, [eax + 4]
lea edx, [ecx + ebp]
cmp edx, ebx
jne 0x10069753
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
cmp ebx, edi
jae 0x10069753
mov eax, dword [esp + 0x30]
add edi, 0xfffffffd
mov esi, eax
mov ebx, edx
cmp edx, edi
jae 0x10069713
push eax
call fcn.1006f750
push edx
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069867
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10069713
nop dword [eax]
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069875
add edx, 4
add esi, 4
cmp edx, edi
jb 0x100696f0
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
lea eax, [edi - 1]
cmp edx, eax
jae 0x1006973e
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x1006973e
add edx, 2
add esi, 2
cmp edx, edi
jae 0x10069749
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10069749
inc edx
mov eax, edx
sub eax, ebx
mov ecx, dword [esp + 0x2c]
add ebp, eax
xor edx, edx
cmp dword [esp + 0x48], edx
je 0x1006978d
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x70]
sub esi, ecx
sub eax, edi
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x1006978d
dec ecx
sub edi, dword [esp + 0x2c]
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x1006978d
dec edx
dec ecx
cmp edx, esi
jg 0x10069780
mov edi, dword [esp + 0x28]
sub ebp, edx
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
cmp ebp, dword [esp + 0x24]
jle 0x100697be
mov dword [esp + 0x24], ebp
lea eax, [edx + esi]
mov ebp, edx
mov dword [esp + 0x3c], eax
sub ebp, edi
add ebp, ebx
add ebp, dword [esp + 0x30]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0xa0]
cmp dword [esp + 0x88], 0
je 0x100698ac
movzx eax, bx
cmp word [ebp + eax*2 + 0x20000], 1
jne 0x100698ac
mov eax, dword [esp + 0x60]
lea ebp, [ebx - 1]
test eax, eax
jne 0x100698c2
mov eax, ecx
xor ebx, ebx
shr eax, 0x18
mov edx, ecx
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x10069899
push dword [esp + 0x10]
mov eax, dword [esp + 0x24]
add eax, 0xfffffffb
mov dword [esp + 0x64], 2
push eax
lea eax, [esi + 4]
push eax
call fcn.1006ec10
mov ebx, dword [esp + 0x40]
add esp, 0xc
add eax, 4
mov dword [esp + 0x78], eax
jmp 0x100698c7
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10069696
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10069696
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x1006974d
push ecx
call fcn.1006ef00
sub edx, ebx
add esp, 4
add eax, edx
jmp 0x1006974d
mov ecx, dword [esp + 0x10]
jmp 0x100697be
mov ecx, dword [esp + 0x10]
jmp 0x100697c5
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x60], 1
mov ebp, dword [esp + 0xa0]
movzx eax, bx
movzx eax, word [ebp + eax*2 + 0x20000]
sub ebx, eax
mov dword [esp + 0x34], ebx
jmp 0x10069a0a
cmp eax, 2
jne 0x100698a5
cmp ebp, dword [esp + 0x5c]
jb 0x100698a5
push ebp
push edi
call fcn.1006ed50
add esp, 8
test eax, eax
je 0x100698a5
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x4c]
sub eax, edi
cmp ebp, edi
cmovae esi, eax
add esi, ebp
push esi
call fcn.1006f740
mov ecx, dword [esp + 0x14]
add esp, 4
cmp eax, ecx
jne 0x100698a5
mov ebx, dword [esp + 0x20]
lea eax, [esi + 4]
add ebx, 0xfffffffb
cmp ebp, edi
push ecx
cmovb ebx, dword [esp + 0x78]
push ebx
push eax
call fcn.1006ec10
mov edx, dword [esp + 0x34]
add esp, 0xc
lea edi, [eax + 4]
cmp ebp, edx
jae 0x10069967
lea ecx, [edi + esi]
cmp ecx, ebx
jne 0x10069967
push dword [esp + 0x10]
push edi
call fcn.1006ede0
mov ebx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffb
push eax
push ebx
call fcn.1006ec10
push dword [esp + 0x24]
add edi, eax
cmp ebp, dword [esp + 0x40]
mov eax, ebx
cmovb eax, dword [esp + 0x58]
push eax
push esi
call fcn.1006ed70
add esp, 0x20
mov ebx, eax
jmp 0x100699bc
push dword [esp + 0x10]
mov eax, dword [esp + 0x34]
cmp ebp, edx
cmovb eax, dword [esp + 0x44]
push eax
push esi
call fcn.1006ed70
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x28]
cmp ebp, eax
jb 0x100699bc
sub esi, ebx
cmp esi, dword [esp + 0x30]
jne 0x100699bc
cmp dword [esp + 0x58], eax
jae 0x100699bc
push dword [esp + 0x10]
mov eax, ebx
neg eax
push eax
call fcn.1006ede0
push eax
push dword [esp + 0x4c]
push dword [esp + 0x84]
call fcn.1006ed70
add esp, 0x14
add ebx, eax
mov esi, dword [esp + 0x78]
mov eax, ebp
sub eax, ebx
mov ecx, edi
mov ebx, dword [esp + 0x5c]
cmp eax, ebx
cmova ebx, eax
sub ecx, ebx
mov dword [esp + 0x34], ebx
add ecx, ebp
cmp ecx, esi
jb 0x10069a70
cmp edi, esi
ja 0x10069a70
sub edi, esi
lea ebx, [edi + ebp]
mov edi, dword [esp + 0x28]
push ebx
push edi
call fcn.1006ed50
add esp, 8
test eax, eax
cmove ebx, edi
mov dword [esp + 0x34], ebx
mov ebp, dword [esp + 0xa0]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
cmp ebx, dword [esp + 0x5c]
jae 0x10069441
mov edi, dword [esp + 0x24]
cmp edi, dword [esp + 0x1c]
je 0x1006aa29
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
cmp ecx, ebp
jae 0x10069af3
mov edx, dword [esp + 0x84]
lea eax, [edx + ebp]
cmp ebx, eax
jae 0x10069af3
mov eax, dword [esp + 0x80]
mov ebp, ecx
mov ecx, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], ecx
jmp 0x10069af7
mov edi, dword [esp + 0x28]
push ebx
push edi
call fcn.1006ed50
add esp, 8
test eax, eax
jne 0x10069a89
mov ebx, edi
jmp 0x100699ff
cmp dword [esp + 0x48], 0
jne 0x10069a03
cmp ecx, esi
mov edx, esi
cmovb edx, ecx
cmp dword [esp + 0x24], edx
jae 0x10069ace
mov ebp, dword [esp + 0x30]
mov eax, edi
mov ecx, dword [esp + 0x2c]
sub eax, ebx
sub eax, ebp
add eax, ecx
cmp eax, 0xffff
ja 0x10069a20
mov eax, ebx
mov dword [esp + 0x24], edx
sub eax, edi
mov dword [esp + 0x3c], ecx
add eax, ebp
mov dword [esp + 0x44], eax
mov ebp, dword [esp + 0xa0]
movzx eax, bx
movzx eax, word [ebp + eax*2 + 0x20000]
cmp eax, ebx
ja 0x10069a20
sub ebx, eax
mov dword [esp + 0x34], ebx
jmp 0x10069a0a
mov ecx, dword [esp + 0x1c]
mov eax, ebx
sub eax, ebp
cmp eax, 3
jge 0x10069b19
mov eax, dword [esp + 0x44]
mov ecx, edi
mov esi, ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x50], eax
jmp 0x10069301
mov esi, dword [esp + 0x44]
nop dword [eax]
mov eax, ebx
sub eax, ebp
cmp eax, 0x12
jge 0x10069b65
cmp ecx, 0x12
mov edx, ecx
mov eax, 0x12
lea ecx, [ebx - 4]
cmovg edx, eax
add ecx, edi
lea eax, [edx + ebp]
cmp eax, ecx
jbe 0x10069b4b
mov edx, edi
sub edx, ebp
add edx, 0xfffffffc
add edx, ebx
sub edx, ebx
add edx, ebp
test edx, edx
jle 0x10069b65
add ebx, edx
add esi, edx
sub edi, edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x20]
lea eax, [edi + ebx]
add ecx, 0xfffffff4
cmp eax, ecx
ja 0x1006a726
mov esi, dword [esp + 0xa0]
lea ebx, [eax - 3]
mov ebp, edi
mov dword [esp + 0x34], ebx
push ebx
mov dword [esp + 0x30], ebp
mov edi, dword [esi + 0x4000c]
mov edx, edi
mov ecx, dword [esi + 0x40004]
sub edx, ecx
mov esi, dword [esi + 0x40010]
add edx, ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x44], edi
lea eax, [esi + 0x10000]
cmp eax, edx
lea ecx, [edx - 0xffff]
cmovbe esi, ecx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0xa4]
mov eax, dword [esi + 0x40008]
mov dword [esp + 0x4c], eax
sub eax, dword [esp + 0x6c]
mov dword [esp + 0x74], eax
add eax, edi
mov dword [esp + 0x78], eax
mov eax, ebx
sub eax, dword [esp + 0x40]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x7c], eax
call fcn.1006f740
mov ecx, dword [esp + 0x2c]
mov edx, eax
mov esi, dword [esi + 0x40014]
sub ebx, ecx
xor eax, eax
mov dword [esp + 0x14], edx
add ebx, edi
mov dword [esp + 0x5c], 0
add esp, 4
mov dword [esp + 0x7c], eax
cmp esi, ebx
jae 0x10069c7d
mov ebp, dword [esp + 0xa0]
mov edi, esi
sub edi, dword [esp + 0x40]
add edi, ecx
push edi
call fcn.1006ecc0
mov ecx, esi
add esp, 4
lea edx, [eax*4]
mov eax, 0xffff
sub ecx, dword [edx + ebp]
cmp ecx, 0xffff
cmova ecx, eax
movzx eax, si
inc edi
mov word [ebp + eax*2 + 0x20000], cx
mov dword [edx + ebp], esi
inc esi
cmp esi, ebx
jb 0x10069c36
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x34]
push esi
mov dword [eax + 0x40014], ebx
call fcn.1006ecc0
mov ebx, dword [esp + 0xa4]
add esp, 4
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x30], ebx
cmp ebx, dword [esp + 0x60]
jb 0x1006a71e
nop
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x1006a2dc
dec eax
mov dword [esp + 0x78], eax
cmp ebx, edi
jb 0x10069e2d
mov ebp, ebx
sub ebp, edi
add ebp, ecx
mov ecx, dword [esp + 0x2c]
mov eax, ebp
mov dword [esp + 0x4c], ebp
sub eax, dword [esp + 0x5c]
dec eax
add eax, ecx
push eax
call fcn.1006f730
dec ecx
mov dx, ax
add ecx, dword [esp + 0x40]
push ecx
call fcn.1006f730
add esp, 8
cmp ax, dx
jne 0x1006a060
push ebp
call fcn.1006f740
mov ecx, dword [esp + 0x14]
add esp, 4
cmp eax, ecx
jne 0x1006a064
xor ebx, ebx
cmp dword [esp + 0x5c], ebx
je 0x10069d44
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
sub eax, ebp
sub edx, esi
cmp edx, eax
cmovle edx, eax
test edx, edx
jns 0x10069d44
lea ecx, [ebp - 1]
sub esi, ebp
mov al, byte [esi + ecx]
cmp al, byte [ecx]
jne 0x10069d44
dec ebx
dec ecx
cmp ebx, edx
jg 0x10069d37
mov edi, dword [esp + 0x20]
lea esi, [ebp + 4]
mov edx, dword [esp + 0x34]
add edi, 0xfffffffb
add edx, 4
add edi, 0xfffffffd
mov ebp, edx
cmp edx, edi
jae 0x10069da4
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069e13
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10069da4
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x10069e1e
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10069d81
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
lea eax, [edi - 1]
cmp edx, eax
jae 0x10069dcf
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10069dcf
add edx, 2
add esi, 2
cmp edx, edi
jae 0x10069dda
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10069dda
inc edx
mov eax, edx
sub eax, ebp
mov esi, dword [esp + 0x34]
sub eax, ebx
mov edi, dword [esp + 0x40]
add eax, 4
mov ecx, dword [esp + 0x10]
cmp eax, dword [esp + 0x2c]
jle 0x10069e0a
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4c]
add eax, ebx
mov dword [esp + 0x64], eax
lea eax, [ebx + esi]
mov dword [esp + 0x6c], eax
mov ebx, dword [esp + 0x30]
jmp 0x1006a064
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10069dde
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10069dde
mov ecx, ebx
lea eax, [edi - 4]
sub ecx, dword [esp + 0x68]
add ecx, dword [esp + 0x48]
mov dword [esp + 0x4c], ecx
cmp ebx, eax
ja 0x1006a060
push ecx
call fcn.1006f740
add esp, 4
cmp eax, edx
jne 0x1006a060
mov edx, dword [esp + 0x20]
mov eax, edi
sub eax, ebx
add edx, 0xfffffffb
add eax, esi
mov ebx, edx
cmp eax, edx
lea esi, [ecx + 4]
mov edx, dword [esp + 0x34]
cmovbe ebx, eax
add edx, 4
mov ebp, edx
lea edi, [ebx - 3]
cmp edx, edi
jae 0x10069ec4
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x1006a020
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10069ec4
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x1006a02e
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10069ea1
lea eax, [ebx - 1]
cmp edx, eax
jae 0x10069ee8
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10069ee8
add edx, 2
add esi, 2
cmp edx, ebx
jae 0x10069ef3
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10069ef3
inc edx
mov eax, edx
sub eax, ebp
mov ecx, dword [esp + 0x34]
lea ebp, [eax + 4]
lea edx, [ecx + ebp]
cmp edx, ebx
jne 0x10069fb3
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
cmp ebx, edi
jae 0x10069fb3
mov eax, dword [esp + 0x28]
add edi, 0xfffffffd
mov esi, eax
mov ebx, edx
cmp edx, edi
jae 0x10069f73
push eax
call fcn.1006f750
push edx
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x1006a040
add edx, 4
add esi, 4
cmp edx, edi
jae 0x10069f73
nop word [eax + eax]
push edx
call fcn.1006f750
push esi
mov ecx, eax
call fcn.1006f750
add esp, 8
xor ecx, eax
jne 0x1006a04e
add edx, 4
add esi, 4
cmp edx, edi
jb 0x10069f50
mov edi, dword [esp + 0x20]
add edi, 0xfffffffb
lea eax, [edi - 1]
cmp edx, eax
jae 0x10069f9e
push edx
call fcn.1006f730
push esi
mov cx, ax
call fcn.1006f730
add esp, 8
cmp ax, cx
jne 0x10069f9e
add edx, 2
add esi, 2
cmp edx, edi
jae 0x10069fa9
mov al, byte [esi]
cmp al, byte [edx]
jne 0x10069fa9
inc edx
mov eax, edx
sub eax, ebx
mov ecx, dword [esp + 0x34]
add ebp, eax
xor edx, edx
cmp dword [esp + 0x5c], edx
je 0x10069fed
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x4c]
sub esi, ecx
sub eax, edi
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x10069fed
dec ecx
sub edi, dword [esp + 0x34]
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x10069fed
dec edx
dec ecx
cmp edx, esi
jg 0x10069fe0
mov edi, dword [esp + 0x40]
sub ebp, edx
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
cmp ebp, dword [esp + 0x2c]
jle 0x1006a064
mov eax, edx
mov dword [esp + 0x2c], ebp
sub eax, edi
add eax, ebx
add eax, dword [esp + 0x28]
mov dword [esp + 0x64], eax
lea eax, [edx + esi]
mov dword [esp + 0x6c], eax
jmp 0x1006a064
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10069ef7
push ecx
call fcn.1006ef00
sub edx, ebp
add esp, 4
add eax, edx
jmp 0x10069ef7
push ecx
call fcn.1006ef00
add esp, 4
jmp 0x10069fad
push ecx
call fcn.1006ef00
sub edx, ebx
add esp, 4
add eax, edx
jmp 0x10069fad
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x88], 0
je 0x1006a0ee
mov edx, dword [esp + 0xa0]
movzx eax, bx
cmp word [edx + eax*2 + 0x20000], 1
jne 0x1006a0ee
mov eax, dword [esp + 0x58]
lea ebp, [ebx - 1]
test eax, eax
jne 0x1006a125
mov eax, ecx
xor ebx, ebx
shr eax, 0x18
mov edx, ecx
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x1006a0e2
push dword [esp + 0x10]
mov eax, dword [esp + 0x24]
add eax, 0xfffffffb
mov dword [esp + 0x5c], 2
push eax
lea eax, [esi + 4]
push eax
call fcn.1006ec10
mov ebx, dword [esp + 0x3c]
add esp, 0xc
add eax, 4
mov dword [esp + 0x7c], eax
jmp 0x1006a12a
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x58], 1
mov ecx, dword [esp + 0xa0]
movzx eax, bx
movzx eax, word [ecx + eax*2 + 0x20000]
sub ebx, eax
mov dword [esp + 0x30], ebx
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x2c]
cmp ebx, dword [esp + 0x60]
jae 0x10069cb0
jmp 0x1006a2dc
cmp eax, 2
jne 0x1006a0ee
cmp ebp, dword [esp + 0x60]
jb 0x1006a0ee
push ebp
push edi
call fcn.1006ed50
add esp, 8
test eax, eax
je 0x1006a0ee
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x70]
sub eax, edi
cmp ebp, edi
cmovae esi, eax
add esi, ebp
push esi
call fcn.1006f740
mov ecx, dword [esp + 0x14]
add esp, 4
cmp eax, ecx
jne 0x1006a0ee
mov ebx, dword [esp + 0x20]
lea eax, [esi + 4]
add ebx, 0xfffffffb
cmp ebp, edi
push ecx
cmovb ebx, dword [esp + 0x78]
push ebx
push eax
call fcn.1006ec10
mov edx, dword [esp + 0x4c]
add esp, 0xc
lea edi, [eax + 4]
cmp ebp, edx
jae 0x1006a1ca
lea ecx, [edi + esi]
cmp ecx, ebx
jne 0x1006a1ca
push dword [esp + 0x10]
push edi
call fcn.1006ede0
mov ebx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffb
push eax
push ebx
call fcn.1006ec10
push dword [esp + 0x24]
add edi, eax
cmp ebp, dword [esp + 0x58]
mov eax, ebx
cmovb eax, dword [esp + 0x60]
push eax
push esi
call fcn.1006ed70
add esp, 0x20
mov ebx, eax
jmp 0x1006a21f
push dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
cmp ebp, edx
cmovb eax, dword [esp + 0x4c]
push eax
push esi
call fcn.1006ed70
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x40]
cmp ebp, eax
jb 0x1006a21f
sub esi, ebx
cmp esi, dword [esp + 0x28]
jne 0x1006a21f
cmp dword [esp + 0x68], eax
jae 0x1006a21f
push dword [esp + 0x10]
mov eax, ebx
neg eax
push eax
call fcn.1006ede0
push eax
push dword [esp + 0x54]
push dword [esp + 0x84]
call fcn.1006ed70
add esp, 0x14
add ebx, eax
mov esi, dword [esp + 0x7c]
mov eax, ebp
sub eax, ebx
mov ecx, edi
mov ebx, dword [esp + 0x60]
cmp eax, ebx
cmova ebx, eax
sub ecx, ebx
mov dword [esp + 0x30], ebx
add ecx, ebp
cmp ecx, esi
jb 0x1006a25f
cmp edi, esi
ja 0x1006a25f
sub edi, esi
lea ebx, [edi + ebp]
mov edi, dword [esp + 0x40]
push ebx
push edi
call fcn.1006ed50
add esp, 8
test eax, eax
cmove ebx, edi
jmp 0x1006a102
mov edi, dword [esp + 0x40]
push ebx
push edi
call fcn.1006ed50
add esp, 8
test eax, eax
jne 0x1006a278
mov ebx, edi
jmp 0x1006a102
cmp dword [esp + 0x5c], 0
jne 0x1006a106
mov ebp, dword [esp + 0x2c]
cmp ecx, esi
mov edx, esi
cmovb edx, ecx
cmp ebp, edx
jae 0x1006a2bd
mov ebp, dword [esp + 0x28]
mov eax, edi
mov ecx, dword [esp + 0x34]
sub eax, ebx
sub eax, ebp
add eax, ecx
cmp eax, 0xffff
ja 0x1006a2d8
mov eax, ebx
mov dword [esp + 0x2c], edx
sub eax, edi
mov dword [esp + 0x6c], ecx
add eax, ebp
mov ebp, edx
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0xa0]
movzx eax, bx
movzx eax, word [ecx + eax*2 + 0x20000]
cmp eax, ebx
ja 0x1006a2dc
jmp 0x1006a100
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
cmp ebp, edi
je 0x1006a71e
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
lea esi, [ecx + ebx]
lea eax, [esi + 3]
cmp edx, eax
jae 0x1006a323
cmp edx, esi
jae 0x1006a52b
mov esi, dword [esp + 0x64]
mov edi, ebp
mov ebp, dword [esp + 0x14]
mov ebx, edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x24], edi
jmp 0x10069b20
mov edx, dword [esp + 0x3c]
cmp edx, esi
jae 0x1006a37f
mov eax, edx
sub eax, ebx
cmp eax, 0x12
jge 0x1006a37b
cmp ecx, 0x12
mov eax, 0x12
cmovg ecx, eax
lea eax, [edx - 4]
mov dword [esp + 0x1c], ecx
add eax, edi
add ecx, ebx
cmp ecx, eax
jbe 0x1006a35d
mov eax, edi
sub eax, ebx
add eax, 0xfffffffc
add eax, edx
mov dword [esp + 0x1c], eax
jmp 0x1006a361
mov eax, dword [esp + 0x1c]
sub eax, edx
add eax, ebx
test eax, eax
jle 0x1006a37f
add dword [esp + 0x44], eax
add edx, eax
sub edi, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x24], edi
jmp 0x1006a37f
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x18]
mov esi, ebx
mov ecx, dword [esp + 0x14]
mov edi, ebx
sub ecx, dword [esp + 0x38]
mov ebp, ebx
inc ebx
mov dword [esp + 0x10], esi
cmp dword [esp + 0xb8], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x4c], ecx
je 0x1006a3c3
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, ebx
cmp eax, dword [esp + 0x54]
ja 0x1006abf8
cmp ecx, 0xf
jb 0x1006a423
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x1006a418
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.10002d38
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, esi
mov dword [esp + 0x18], eax
nop
sub ebx, 0xff
sub esi, 1
jne 0x1006a400
mov ecx, dword [esp + 0x4c]
mov byte [eax], bl
mov ebx, dword [esp + 0x18]
inc ebx
jmp 0x1006a42a
mov eax, dword [esp + 0x18]
mov byte [eax], bl
mov ebx, eax
inc ebx
jmp 0x1006a42a
mov al, cl
shl al, 4
mov byte [edi], al
mov edx, dword [esp + 0x38]
lea esi, [ecx + ebx]
sub edx, ebx
mov eax, dword [edx + ebx]
mov ecx, dword [edx + ebx + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, esi
jb 0x1006a433
mov ebx, esi
mov esi, dword [esp + 0x14]
mov eax, esi
sub eax, dword [esp + 0x50]
push eax
push ebx
call fcn.1006f9b0
mov ecx, dword [esp + 0x24]
add ebx, 2
add esp, 8
mov dword [esp + 0x18], ebx
add ecx, 0xfffffffc
cmp dword [esp + 0xb8], 0
je 0x1006a48d
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, ebx
cmp eax, dword [esp + 0x54]
ja 0x1006abf4
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1006a4de
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x1006a4c3
mov eax, 0x80808081
mul ecx
shr edx, 8
nop
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x1006a4b0
cmp ecx, 0xff
jb 0x1006a4d5
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x1006a4e2
add al, cl
mov byte [edi], al
add esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov ebx, edx
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x38], esi
mov esi, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x24], edi
jmp 0x10069b20
mov edx, dword [esp + 0x3c]
cmp edx, esi
jae 0x1006a562
mov eax, ecx
sub eax, edx
add eax, ebx
add dword [esp + 0x44], eax
sub edi, eax
add edx, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x3c], edx
cmp edi, 4
jge 0x1006a562
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x18]
mov ebp, eax
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov dword [esp + 0x70], eax
inc eax
cmp dword [esp + 0xb8], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x4c], ecx
je 0x1006a5ae
mov eax, 0x80808081
mul ecx
mov eax, dword [esp + 0x18]
shr edx, 7
add eax, 8
add edx, ecx
add eax, edx
cmp eax, dword [esp + 0x54]
ja 0x1006abf4
mov eax, dword [esp + 0x18]
cmp ecx, 0xf
jb 0x1006a608
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1006a5ff
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov edi, edx
shr edi, 7
push edi
push 0xff
push eax
call fcn.10002d38
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, edi
nop word [eax + eax]
sub ebx, 0xff
sub edi, 1
jne 0x1006a5f0
mov ecx, dword [esp + 0x4c]
mov byte [eax], bl
inc eax
mov dword [esp + 0x18], eax
jmp 0x1006a610
mov al, cl
shl al, 4
mov byte [ebp], al
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
sub edx, ebx
lea edi, [ecx + ebx]
nop dword [eax]
mov eax, dword [edx + ebx]
mov ecx, dword [edx + ebx + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, edi
jb 0x1006a620
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x70]
push eax
push edi
call fcn.1006f9b0
mov ecx, dword [esp + 0x24]
add edi, 2
add esp, 8
mov dword [esp + 0x18], edi
add ecx, 0xfffffffc
cmp dword [esp + 0xb8], 0
je 0x1006a67a
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, edi
cmp eax, dword [esp + 0x54]
ja 0x1006abf4
mov al, byte [ebx]
cmp ecx, 0xf
jb 0x1006a6ce
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x1006a6b3
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax + eax]
mov word [edi], 0xffff
sub ecx, 0x1fe
add edi, 2
sub edx, 1
jne 0x1006a6a0
cmp ecx, 0xff
jb 0x1006a6c5
sub ecx, 0xff
mov byte [edi], 0xff
inc edi
mov byte [edi], cl
inc edi
mov dword [esp + 0x18], edi
jmp 0x1006a6d3
add al, cl
mov byte [ebp], al
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x6c], esi
mov dword [esp + 0x64], edx
jmp 0x10069301
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
add eax, ebp
cmp ebx, eax
jae 0x1006a738
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x18]
mov esi, ebx
mov ecx, dword [esp + 0x14]
mov edi, ebx
sub ecx, dword [esp + 0x38]
mov ebp, ebx
inc ebx
mov dword [esp + 0x10], esi
cmp dword [esp + 0xb8], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x4c], ecx
je 0x1006a77c
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, ebx
cmp eax, dword [esp + 0x54]
ja 0x1006abf8
cmp ecx, 0xf
jb 0x1006a7e3
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x1006a7d8
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.10002d38
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, esi
mov dword [esp + 0x18], eax
nop dword [eax + eax]
sub ebx, 0xff
sub esi, 1
jne 0x1006a7c0
mov ecx, dword [esp + 0x4c]
mov byte [eax], bl
mov ebx, dword [esp + 0x18]
inc ebx
jmp 0x1006a7ea
mov eax, dword [esp + 0x18]
mov byte [eax], bl
mov ebx, eax
inc ebx
jmp 0x1006a7ea
mov al, cl
shl al, 4
mov byte [edi], al
mov edx, dword [esp + 0x38]
lea esi, [ecx + ebx]
sub edx, ebx
mov eax, dword [edx + ebx]
mov ecx, dword [edx + ebx + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, esi
jb 0x1006a7f3
mov ebx, dword [esp + 0x14]
mov eax, ebx
sub eax, dword [esp + 0x50]
push eax
push esi
call fcn.1006f9b0
mov ecx, dword [esp + 0x24]
add esp, 8
add esi, 2
add ecx, 0xfffffffc
cmp dword [esp + 0xb8], 0
je 0x1006a847
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, esi
cmp eax, dword [esp + 0x54]
ja 0x1006abee
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1006a89a
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x1006a883
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax + eax]
mov word [esi], 0xffff
sub ecx, 0x1fe
add esi, 2
sub edx, 1
jne 0x1006a870
cmp ecx, 0xff
jb 0x1006a895
sub ecx, 0xff
mov byte [esi], 0xff
inc esi
mov byte [esi], cl
inc esi
jmp 0x1006a89e
add al, cl
mov byte [edi], al
add ebx, dword [esp + 0x1c]
mov ebp, esi
mov edi, dword [esp + 0x3c]
mov edx, ebx
mov ecx, edi
mov dword [esp + 0x10], ebp
sub ecx, edx
mov dword [esp + 0x38], edx
cmp dword [esp + 0xb8], 0
lea esi, [ebp + 1]
mov ebx, edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x14], ebx
je 0x1006a8ec
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, esi
cmp eax, dword [esp + 0x54]
ja 0x1006abbe
mov edx, dword [esp + 0x38]
cmp ecx, 0xf
jb 0x1006a93d
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1006a938
mov eax, 0x80808081
mul ebx
mov edi, edx
shr edi, 7
push edi
push 0xff
push esi
call fcn.10002d38
mov edx, dword [esp + 0x44]
add esp, 0xc
add esi, edi
mov dword [esp + 0x38], edx
sub ebx, 0xff
sub edi, 1
jne 0x1006a925
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
mov byte [esi], bl
inc esi
jmp 0x1006a949
mov al, cl
mov dword [esp + 0x38], edx
shl al, 4
mov byte [ebp], al
lea ebx, [ecx + esi]
sub edx, esi
nop
mov eax, dword [edx + esi]
mov ecx, dword [edx + esi + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
add esi, 8
cmp esi, ebx
jb 0x1006a950
mov eax, edi
sub eax, dword [esp + 0x44]
push eax
push ebx
call fcn.1006f9b0
mov esi, dword [esp + 0x2c]
add ebx, 2
add esp, 8
mov dword [esp + 0x18], ebx
cmp dword [esp + 0xb8], 0
lea ecx, [esi - 4]
je 0x1006a9a4
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, ebx
cmp eax, dword [esp + 0x54]
ja 0x1006abda
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1006aa10
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x1006a9e3
mov eax, 0x80808081
mul ecx
shr edx, 8
nop word [eax + eax]
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x1006a9d0
cmp ecx, 0xff
jb 0x1006a9f5
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
lea eax, [esi + edi]
mov byte [ebx], cl
mov esi, eax
mov dword [esp + 0x14], eax
inc ebx
mov ebp, esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x38], ebp
jmp 0x1006aba3
add al, cl
mov byte [ebp], al
lea eax, [esi + edi]
mov esi, eax
mov dword [esp + 0x14], eax
mov ebp, esi
mov dword [esp + 0x38], ebp
jmp 0x1006aba3
mov ebx, dword [esp + 0x18]
mov esi, ebx
mov ecx, dword [esp + 0x14]
mov edi, ebx
sub ecx, dword [esp + 0x38]
mov ebp, ebx
inc ebx
mov dword [esp + 0x10], esi
cmp dword [esp + 0xb8], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x4c], ecx
je 0x1006aa6d
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, ebx
cmp eax, dword [esp + 0x54]
ja 0x1006abf8
cmp ecx, 0xf
jb 0x1006aad3
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x1006aac8
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.10002d38
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, esi
mov dword [esp + 0x18], eax
nop dword [eax]
sub ebx, 0xff
sub esi, 1
jne 0x1006aab0
mov ecx, dword [esp + 0x4c]
mov byte [eax], bl
mov ebx, dword [esp + 0x18]
inc ebx
jmp 0x1006aada
mov eax, dword [esp + 0x18]
mov byte [eax], bl
mov ebx, eax
inc ebx
jmp 0x1006aada
mov al, cl
shl al, 4
mov byte [edi], al
mov edx, dword [esp + 0x38]
lea esi, [ecx + ebx]
sub edx, ebx
mov eax, dword [ebx + edx]
mov ecx, dword [ebx + edx + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, esi
jb 0x1006aae3
mov eax, dword [esp + 0x14]
mov ebx, esi
sub eax, dword [esp + 0x50]
push eax
push ebx
call fcn.1006f9b0
mov ecx, dword [esp + 0x24]
add ebx, 2
add esp, 8
mov dword [esp + 0x18], ebx
add ecx, 0xfffffffc
cmp dword [esp + 0xb8], 0
je 0x1006ab3b
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, ebx
cmp eax, dword [esp + 0x54]
ja 0x1006abf4
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1006ab8e
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x1006ab73
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax]
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x1006ab60
cmp ecx, 0xff
jb 0x1006ab85
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x1006ab92
add cl, al
mov byte [edi], cl
mov esi, dword [esp + 0x8c]
mov ebp, esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x20]
add eax, 0xfffffff4
cmp esi, eax
ja 0x1006adae
mov edi, dword [esp + 0xa0]
jmp 0x10068c10
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
mov edi, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x50], eax
jmp 0x1006ac00
mov eax, dword [esp + 0x44]
mov edi, esi
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x50], eax
jmp 0x1006ac00
mov esi, dword [esp + 0x10]
jmp 0x1006abfc
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0xb8], 2
jne 0x1006adf0
mov ebp, dword [esp + 0x38]
mov eax, 0x80808081
sub ebx, ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x8c], ebx
lea ecx, [ebx + 0xf0]
mul ecx
mov ecx, dword [esp + 0x54]
shr edx, 7
add ecx, 0xfffffffd
inc edx
add edx, ebx
lea eax, [edx + esi]
cmp eax, ecx
ja 0x1006ad7e
sub ecx, edx
sub ecx, esi
imul eax, ecx, 0xff
add eax, 0x12
cmp edi, eax
cmova edi, eax
mov eax, dword [esp + 0x54]
sub eax, edx
mov dword [esp + 0x1c], edi
sub eax, esi
add eax, 2
add eax, edi
cmp eax, 0xc
jl 0x1006ad7e
mov ebp, dword [esp + 0x10]
inc esi
cmp ebx, 0xf
jb 0x1006accb
add ebx, 0xfffffff1
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1006acbf
mov eax, 0x80808081
mul ebx
mov edi, edx
shr edi, 7
push edi
push 0xff
push esi
call fcn.10002d38
add esp, 0xc
add esi, edi
nop word [eax + eax]
sub ebx, 0xff
sub edi, 1
jne 0x1006acb0
mov edi, dword [esp + 0x1c]
mov byte [esi], bl
inc esi
mov ebx, dword [esp + 0x8c]
jmp 0x1006acd3
mov al, bl
shl al, 4
mov byte [ebp], al
mov ebp, dword [esp + 0x38]
add ebx, esi
sub ebp, esi
nop dword [eax + eax]
mov eax, dword [esi + ebp]
mov ecx, dword [esi + ebp + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
add esi, 8
cmp esi, ebx
jb 0x1006ace0
mov edx, dword [esp + 0x14]
mov eax, edx
sub eax, dword [esp + 0x50]
push eax
push ebx
call fcn.1006f9b0
mov ebp, dword [esp + 0x18]
lea ecx, [edi - 4]
add ebx, 2
add esp, 8
mov dword [esp + 0x18], ebx
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1006ad72
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x1006ad57
mov eax, 0x80808081
mul ecx
shr edx, 8
nop word [eax + eax]
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x1006ad40
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
jb 0x1006ad69
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x1006ad77
add al, cl
mov byte [ebp], al
lea ebp, [edi + edx]
mov dword [esp + 0x38], ebp
mov ebx, dword [esp + 0x20]
mov eax, 0x80808081
mov esi, dword [esp + 0xb8]
sub ebx, ebp
mov dword [esp + 0x20], ebx
lea ecx, [ebx + 0xf0]
mul ecx
mov ecx, dword [esp + 0x54]
shr edx, 7
add edx, ebx
mov ebx, dword [esp + 0x18]
add ecx, 5
jmp 0x1006ade2
mov esi, dword [esp + 0x20]
mov eax, 0x80808081
sub esi, ebp
mov dword [esp + 0x20], esi
lea ecx, [esi + 0xf0]
mul ecx
mov eax, dword [esp + 0x54]
shr edx, 7
add edx, esi
mov esi, dword [esp + 0xb8]
cmp esi, 2
lea ecx, [eax + 5]
cmovne ecx, eax
test esi, esi
je 0x1006ae12
lea eax, [ebx + 1]
add eax, edx
cmp eax, ecx
jbe 0x1006ae12
cmp esi, 1
jne 0x1006adfe
mov edi, dword [esp + 0xa0]
xor eax, eax
jmp 0x1006aecd
sub ecx, ebx
dec ecx
lea eax, [ecx + 0xf1]
shr eax, 8
sub ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x1006ae16
mov ecx, dword [esp + 0x20]
add ebp, ecx
lea edi, [ebx + 1]
cmp ecx, 0xf
jb 0x1006ae64
mov eax, dword [esp + 0x18]
lea ebx, [ecx - 0xf]
mov byte [eax], 0xf0
cmp ebx, 0xff
jb 0x1006ae5f
mov eax, 0x80808081
mul ebx
mov esi, edx
shr esi, 7
push esi
push 0xff
push edi
call fcn.10002d38
add esp, 0xc
add edi, esi
nop
sub ebx, 0xff
sub esi, 1
jne 0x1006ae50
mov ecx, dword [esp + 0x20]
mov byte [edi], bl
inc edi
jmp 0x1006ae6b
mov al, cl
shl al, 4
mov byte [ebx], al
push ecx
push dword [esp + 0x3c]
push edi
call fcn.10004eda
mov eax, dword [esp + 0xb8]
add esp, 0xc
sub ebp, dword [esp + 0xa4]
mov dword [eax], ebp
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0xa8]
add eax, edi
mov edi, dword [esp + 0xa0]
jmp 0x1006aecd
push eax
push 0
xor eax, eax
cmp ecx, 0xc
sete al
push eax
push ebx
push esi
push dword [esp + 0xa8]
push edx
push ebp
push dword [esp + 0xc8]
push dword [esp + 0xc8]
push edi
call fcn.1006b7f0
add esp, 0x2c
test eax, eax
jg 0x1006aed8
mov byte [edi + 0x4001b], 1
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x8c
ret