Function at 0x1001070d
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push esi
cmp dword [ebp + 8], 0
je 0x1001073d
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
je 0x1001073d
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xc], 0
je 0x1001073d
mov edx, dword [ebp + 8]
cmp dword [edx], 0
jne 0x10010747
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
je 0x10010747
mov eax, 0xfffffffe
jmp 0x1001292e
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1c]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0xb
jne 0x10010761
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0xc
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x38]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x3c]
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x10010761
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x20], 0
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0x1e
ja case.default.0x100107c4
mov ecx, dword [ebp - 0x44]
jmp dword [ecx*4 + 0x10012935]
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 8], 0
jne 0x100107e2
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0xc
jmp 0x1001278a
cmp dword [ebp - 0x14], 0x10
jae 0x1001082a
cmp dword [ebp - 0x30], 0
jne 0x100107f3
jmp 0x1001278f
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x14]
add eax, 8
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x100107e8
jmp 0x100107e2
xor edx, edx
test edx, edx
jne 0x100107e2
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 8]
and ecx, 2
test ecx, ecx
je 0x100108a6
cmp dword [ebp - 0x18], 0x8b1f
jne 0x100108a6
push 0
push 0
push 0
call fcn.1001803a
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x18], eax
mov al, byte [ebp - 0x18]
mov byte [ebp - 0x10], al
mov ecx, dword [ebp - 0x18]
shr ecx, 8
mov byte [ebp - 0xf], cl
push 2
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x18]
push ecx
call fcn.1001803a
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x18], eax
xor eax, eax
test eax, eax
jne 0x10010857
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor ecx, ecx
test ecx, ecx
jne 0x10010884
mov edx, dword [ebp - 0x1c]
mov dword [edx], 1
jmp 0x1001278a
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x10], 0
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x20], 0
je 0x100108c6
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x20]
mov dword [eax + 0x30], 0xffffffff
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 8]
and edx, 1
test edx, edx
je 0x100108f3
mov eax, dword [ebp - 0x18]
and eax, 0xff
shl eax, 8
mov ecx, dword [ebp - 0x18]
shr ecx, 8
add eax, ecx
xor edx, edx
mov ecx, 0x1f
div ecx
test edx, edx
je 0x1001090b
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
jmp 0x1001278a
mov ecx, dword [ebp - 0x18]
and ecx, 0xf
cmp ecx, 8
je 0x1001092e
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
jmp 0x1001278a
mov ecx, dword [ebp - 0x18]
shr ecx, 4
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
sub edx, 4
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x1001092e
mov ecx, dword [ebp - 0x18]
and ecx, 0xf
add ecx, 8
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x24], 0
jne 0x10010966
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x38]
mov dword [eax + 0x24], ecx
jmp 0x10010989
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
cmp eax, dword [edx + 0x24]
jbe 0x10010989
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x1d
jmp 0x1001278a
mov eax, 1
mov ecx, dword [ebp - 0x38]
shl eax, cl
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x14], eax
push 0
push 0
push 0
call fcn.10017a20
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x18], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
mov dword [eax + 0x30], edx
mov eax, dword [ebp - 0x18]
and eax, 0x200
neg eax
sbb eax, eax
and al, 0xfe
add eax, 0xb
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor edx, edx
test edx, edx
jne 0x100109cc
jmp 0x1001278a
cmp dword [ebp - 0x14], 0x10
jae 0x10010a2d
cmp dword [ebp - 0x30], 0
jne 0x100109f6
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x100109eb
jmp case.0x100107c4.1
xor ecx, ecx
test ecx, ecx
jne case.0x100107c4.1
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10]
and edx, 0xff
cmp edx, 8
je 0x10010a65
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x1d
jmp 0x1001278a
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x10]
and eax, 0xe000
test eax, eax
je 0x10010a8c
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x1d
jmp 0x1001278a
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x20], 0
je 0x10010aa6
mov ecx, dword [ebp - 0x18]
shr ecx, 8
and ecx, 1
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x20]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10]
and edx, 0x200
test edx, edx
je 0x10010ae3
mov al, byte [ebp - 0x18]
mov byte [ebp - 0x10], al
mov ecx, dword [ebp - 0x18]
shr ecx, 8
mov byte [ebp - 0xf], cl
push 2
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x18]
push ecx
call fcn.1001803a
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x18], eax
xor eax, eax
test eax, eax
jne 0x10010ab6
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor ecx, ecx
test ecx, ecx
jne 0x10010ae3
mov edx, dword [ebp - 0x1c]
mov dword [edx], 2
cmp dword [ebp - 0x14], 0x20
jae 0x10010b48
cmp dword [ebp - 0x30], 0
jne 0x10010b11
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10010b06
jmp case.0x100107c4.2
xor ecx, ecx
test ecx, ecx
jne case.0x100107c4.2
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x20], 0
je 0x10010b63
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x18]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
and ecx, 0x200
test ecx, ecx
je 0x10010bb2
mov dl, byte [ebp - 0x18]
mov byte [ebp - 0x10], dl
mov eax, dword [ebp - 0x18]
shr eax, 8
mov byte [ebp - 0xf], al
mov ecx, dword [ebp - 0x18]
shr ecx, 0x10
mov byte [ebp - 0xe], cl
mov edx, dword [ebp - 0x18]
shr edx, 0x18
mov byte [ebp - 0xd], dl
push 4
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
push edx
call fcn.1001803a
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x18], eax
xor edx, edx
test edx, edx
jne 0x10010b73
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor eax, eax
test eax, eax
jne 0x10010bb2
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 3
cmp dword [ebp - 0x14], 0x10
jae 0x10010c19
cmp dword [ebp - 0x30], 0
jne 0x10010be0
jmp 0x1001278f
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, ecx
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10010bd5
jmp case.0x100107c4.3
xor ecx, ecx
test ecx, ecx
jne case.0x100107c4.3
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x20], 0
je 0x10010c48
mov eax, dword [ebp - 0x18]
and eax, 0xff
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x20]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x18]
shr eax, 8
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x20]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
and ecx, 0x200
test ecx, ecx
je 0x10010c85
mov dl, byte [ebp - 0x18]
mov byte [ebp - 0x10], dl
mov eax, dword [ebp - 0x18]
shr eax, 8
mov byte [ebp - 0xf], al
push 2
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x18]
push eax
call fcn.1001803a
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x18], eax
xor edx, edx
test edx, edx
jne 0x10010c58
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor eax, eax
test eax, eax
jne 0x10010c85
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 4
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x10]
and eax, 0x400
test eax, eax
je 0x10010d74
cmp dword [ebp - 0x14], 0x10
jae 0x10010cfd
cmp dword [ebp - 0x30], 0
jne 0x10010cc6
jmp 0x1001278f
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x14]
add eax, 8
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x10010cbb
jmp 0x10010cb5
xor edx, edx
test edx, edx
jne 0x10010cb5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 0x40], ecx
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x20], 0
je 0x10010d21
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x18]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
and ecx, 0x200
test ecx, ecx
je 0x10010d5e
mov dl, byte [ebp - 0x18]
mov byte [ebp - 0x10], dl
mov eax, dword [ebp - 0x18]
shr eax, 8
mov byte [ebp - 0xf], al
push 2
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x18]
push eax
call fcn.1001803a
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x18], eax
xor edx, edx
test edx, edx
jne 0x10010d31
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor eax, eax
test eax, eax
jne 0x10010d5e
jmp 0x10010d8a
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x20], 0
je 0x10010d8a
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x20]
mov dword [eax + 0x10], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 5
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x10]
and eax, 0x400
test eax, eax
je 0x10010e8c
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x40]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x30]
jbe 0x10010dbd
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
je 0x10010e7e
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x20], 0
je 0x10010e33
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
cmp dword [ecx + 0x10], 0
je 0x10010e33
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [eax + 0x14]
sub edx, dword [ecx + 0x40]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x20]
cmp eax, dword [edx + 0x18]
jbe 0x10010e10
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [ecx + 0x18]
sub edx, dword [ebp - 0x38]
mov dword [ebp - 0x48], edx
jmp 0x10010e16
mov eax, dword [ebp - 4]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x48]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [ecx + 0x10]
add edx, dword [ebp - 0x38]
push edx
call fcn.10017980
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
and ecx, 0x200
test ecx, ecx
je 0x10010e5d
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
push edx
call fcn.1001803a
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x18], eax
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 4]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 4]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x40]
sub edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x40], edx
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x40], 0
je 0x10010e8c
jmp 0x1001278f
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x40], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 6
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10]
and edx, 0x800
test edx, edx
je 0x10010f7c
cmp dword [ebp - 0x30], 0
jne 0x10010ebe
jmp 0x1001278f
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 4]
xor ecx, ecx
mov cl, byte [eax]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x20], 0
je 0x10010f25
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x20]
cmp dword [edx + 0x1c], 0
je 0x10010f25
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x40]
cmp eax, dword [ecx + 0x20]
jae 0x10010f25
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x20]
mov eax, dword [edx + 0x1c]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x40]
mov cl, byte [ebp - 0x38]
mov byte [eax + edx], cl
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x40]
add eax, 1
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x40], eax
cmp dword [ebp - 0x38], 0
je 0x10010f33
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x30]
jb 0x10010ec5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
and ecx, 0x200
test ecx, ecx
je 0x10010f5d
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
push edx
call fcn.1001803a
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x18], eax
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 4]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 4]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x38], 0
je 0x10010f7a
jmp 0x1001278f
jmp 0x10010f92
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x20], 0
je 0x10010f92
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x20]
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x40], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 7
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
and ecx, 0x1000
test ecx, ecx
je 0x10011081
cmp dword [ebp - 0x30], 0
jne 0x10010fc4
jmp 0x1001278f
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 4]
xor eax, eax
mov al, byte [edx]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x20], 0
je 0x1001102b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
cmp dword [ecx + 0x24], 0
je 0x1001102b
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x40]
cmp edx, dword [eax + 0x28]
jae 0x1001102b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x40]
mov al, byte [ebp - 0x38]
mov byte [edx + ecx], al
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x40]
add edx, 1
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x40], edx
cmp dword [ebp - 0x38], 0
je 0x10011039
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x30]
jb 0x10010fcb
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x10]
and eax, 0x200
test eax, eax
je 0x10011062
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x18]
push ecx
call fcn.1001803a
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 4]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 4]
mov dword [ebp - 0x3c], ecx
cmp dword [ebp - 0x38], 0
je 0x1001107f
jmp 0x1001278f
jmp 0x10011097
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x20], 0
je 0x10011097
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
mov dword [ecx + 0x24], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 8
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
and ecx, 0x200
test ecx, ecx
je 0x10011140
cmp dword [ebp - 0x14], 0x10
jae 0x100110fe
cmp dword [ebp - 0x30], 0
jne 0x100110c5
jmp 0x1001278f
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, ecx
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x100110ba
jmp 0x100110b4
xor ecx, ecx
test ecx, ecx
jne 0x100110b4
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x18]
and eax, 0xffff
cmp dword [ebp - 0x18], eax
je 0x1001112c
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x1d
jmp 0x1001278a
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor eax, eax
test eax, eax
jne 0x1001112c
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x20], 0
je 0x1001116b
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x10]
sar eax, 9
and eax, 1
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x20]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x20]
mov dword [ecx + 0x30], 1
push 0
push 0
push 0
call fcn.1001803a
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x18], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
mov dword [eax + 0x30], edx
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0xb
jmp 0x1001278a
cmp dword [ebp - 0x14], 0x20
jae 0x100111de
cmp dword [ebp - 0x30], 0
jne 0x100111a7
jmp 0x1001278f
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x14]
add eax, 8
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x1001119c
jmp case.0x100107c4.9
xor edx, edx
test edx, edx
jne case.0x100107c4.9
mov eax, dword [ebp - 0x18]
shr eax, 0x18
and eax, 0xff
mov ecx, dword [ebp - 0x18]
shr ecx, 8
and ecx, 0xff00
add eax, ecx
mov edx, dword [ebp - 0x18]
and edx, 0xff00
shl edx, 8
add eax, edx
mov ecx, dword [ebp - 0x18]
and ecx, 0xff
shl ecx, 0x18
add eax, ecx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x18], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
mov dword [eax + 0x30], edx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor eax, eax
test eax, eax
jne 0x1001122b
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0xa
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0xc], 0
jne 0x10011296
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x3c]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x30]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov dword [edx + 0x38], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov dword [ecx + 0x3c], edx
xor eax, eax
test eax, eax
jne 0x10011251
mov eax, 2
jmp 0x1001292e
push 0
push 0
push 0
call fcn.10017a20
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x18], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x30], ecx
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0xb
cmp dword [ebp + 0xc], 5
je 0x100112c8
cmp dword [ebp + 0xc], 6
jne case.0x100107c4.12
jmp 0x1001278f
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 4], 0
je 0x10011306
mov ecx, dword [ebp - 0x14]
and ecx, 7
mov edx, dword [ebp - 0x18]
shr edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x14]
and eax, 7
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x100112d6
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1a
jmp 0x1001278a
cmp dword [ebp - 0x14], 3
jae 0x1001134e
cmp dword [ebp - 0x30], 0
jne 0x10011317
jmp 0x1001278f
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x14]
add eax, 8
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x1001130c
jmp 0x10011306
xor edx, edx
test edx, edx
jne 0x10011306
mov eax, dword [ebp - 0x18]
and eax, 1
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x18]
shr edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x10011360
mov edx, dword [ebp - 0x18]
and edx, 3
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x4c], 3
ja case.default.0x10011389
mov eax, dword [ebp - 0x4c]
jmp dword [eax*4 + 0x100129b1]
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0xd
jmp case.default.0x10011389
mov edx, dword [ebp - 0x1c]
push edx
call fcn.100129c1
add esp, 4
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x13
cmp dword [ebp + 0xc], 6
jne 0x100113d3
mov ecx, dword [ebp - 0x18]
shr ecx, 2
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
sub edx, 2
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x100113b6
jmp 0x1001278f
jmp case.default.0x10011389
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x10
jmp case.default.0x10011389
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
mov ecx, dword [ebp - 0x18]
shr ecx, 2
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
sub edx, 2
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne case.default.0x10011389
jmp 0x1001278a
mov ecx, dword [ebp - 0x14]
and ecx, 7
mov edx, dword [ebp - 0x18]
shr edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x14]
and eax, 7
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne case.0x100107c4.13
cmp dword [ebp - 0x14], 0x20
jae 0x1001147a
cmp dword [ebp - 0x30], 0
jne 0x10011443
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10011438
jmp 0x10011432
xor ecx, ecx
test ecx, ecx
jne 0x10011432
mov edx, dword [ebp - 0x18]
and edx, 0xffff
mov eax, dword [ebp - 0x18]
shr eax, 0x10
xor eax, 0xffff
cmp edx, eax
je 0x100114b0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x1d
jmp 0x1001278a
mov eax, dword [ebp - 0x18]
and eax, 0xffff
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x40], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor edx, edx
test edx, edx
jne 0x100114be
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0xe
cmp dword [ebp + 0xc], 6
jne case.0x100107c4.14
jmp 0x1001278f
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0xf
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x40]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x10011571
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x30]
jbe 0x1001150c
mov edx, dword [ebp - 0x30]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x40]
jbe 0x1001151a
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne 0x10011525
jmp 0x1001278f
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.10017980
add esp, 0xc
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 4]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 4]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x40]
sub ecx, dword [ebp - 4]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x24]
add edx, dword [ebp - 4]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x40]
sub ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x40], ecx
jmp 0x1001278a
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0xb
jmp 0x1001278a
cmp dword [ebp - 0x14], 0xe
jae 0x100115c7
cmp dword [ebp - 0x30], 0
jne 0x10011590
jmp 0x1001278f
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x14]
add eax, 8
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x10011585
jmp case.0x100107c4.16
xor edx, edx
test edx, edx
jne case.0x100107c4.16
mov eax, dword [ebp - 0x18]
and eax, 0x1f
add eax, 0x101
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x60], eax
mov edx, dword [ebp - 0x18]
shr edx, 5
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x14]
sub eax, 5
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x100115de
mov edx, dword [ebp - 0x18]
and edx, 0x1f
add edx, 1
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x64], edx
mov ecx, dword [ebp - 0x18]
shr ecx, 5
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
sub edx, 5
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10011605
mov ecx, dword [ebp - 0x18]
and ecx, 0xf
add ecx, 4
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x5c], ecx
mov eax, dword [ebp - 0x18]
shr eax, 4
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x14]
sub ecx, 4
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x1001162c
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x60], 0x11e
ja 0x10011659
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x64], 0x1e
jbe 0x10011671
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
jmp 0x1001278a
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x68], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x11
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [eax + 0x68]
cmp edx, dword [ecx + 0x5c]
jae 0x1001172e
cmp dword [ebp - 0x14], 3
jae 0x100116de
cmp dword [ebp - 0x30], 0
jne 0x100116a7
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x1001169c
jmp 0x10011696
xor ecx, ecx
test ecx, ecx
jne 0x10011696
mov edx, dword [ebp - 0x18]
and edx, 7
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x68]
xor eax, eax
mov ax, word [ecx*2 + 0x1001db4c]
mov ecx, dword [ebp - 0x1c]
mov word [ecx + eax*2 + 0x70], dx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x68]
add eax, 1
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x68], eax
mov edx, dword [ebp - 0x18]
shr edx, 3
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x14]
sub eax, 3
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x10011711
jmp case.0x100107c4.17
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x68], 0x13
jae 0x10011762
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x68]
xor edx, edx
mov dx, word [ecx*2 + 0x1001db4c]
mov eax, dword [ebp - 0x1c]
mov word [eax + edx*2 + 0x70], 0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x68]
add edx, 1
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x68], edx
jmp 0x1001172e
mov ecx, dword [ebp - 0x1c]
add ecx, 0x530
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x6c], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x6c]
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x54], 7
mov ecx, dword [ebp - 0x1c]
add ecx, 0x2f0
push ecx
mov edx, dword [ebp - 0x1c]
add edx, 0x54
push edx
mov eax, dword [ebp - 0x1c]
add eax, 0x6c
push eax
push 0x13
mov ecx, dword [ebp - 0x1c]
add ecx, 0x70
push ecx
push 0
call fcn.100172d0
add esp, 0x18
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x100117d3
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
jmp 0x1001278a
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x68], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x12
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x60]
mov edx, dword [ebp - 0x1c]
add ecx, dword [edx + 0x64]
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x68], ecx
jae 0x10011bea
mov ecx, dword [ebp - 0x1c]
mov edx, 1
mov ecx, dword [ecx + 0x54]
shl edx, cl
sub edx, 1
mov eax, dword [ebp - 0x18]
and eax, edx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x4c]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
cmp ecx, dword [ebp - 0x14]
ja 0x1001182f
jmp 0x10011873
cmp dword [ebp - 0x30], 0
jne 0x1001183a
jmp 0x1001278f
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, ecx
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x1001182f
jmp 0x100117fe
mov ecx, dword [ebp - 0x26]
and ecx, 0xffff
cmp ecx, 0x10
jge 0x10011928
mov edx, dword [ebp - 0x27]
and edx, 0xff
cmp dword [ebp - 0x14], edx
jae 0x100118d5
cmp dword [ebp - 0x30], 0
jne 0x1001189e
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10011893
jmp 0x10011885
xor ecx, ecx
test ecx, ecx
jne 0x10011885
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
mov edx, dword [ebp - 0x18]
shr edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x27]
and eax, 0xff
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x100118db
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x68]
mov edx, dword [ebp - 0x1c]
mov ax, word [ebp - 0x26]
mov word [edx + ecx*2 + 0x70], ax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x68]
add edx, 1
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x68], edx
jmp 0x10011be5
mov ecx, dword [ebp - 0x26]
and ecx, 0xffff
cmp ecx, 0x10
jne 0x10011a17
mov edx, dword [ebp - 0x27]
and edx, 0xff
add edx, 2
cmp dword [ebp - 0x14], edx
jae 0x1001198d
cmp dword [ebp - 0x30], 0
jne 0x10011956
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x1001194b
jmp 0x1001193a
xor ecx, ecx
test ecx, ecx
jne 0x1001193a
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
mov edx, dword [ebp - 0x18]
shr edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x27]
and eax, 0xff
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x10011993
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x68], 0
jne 0x100119db
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x1d
jmp 0x10011bea
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x68]
mov edx, dword [ebp - 0x1c]
xor eax, eax
mov ax, word [edx + ecx*2 + 0x6e]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x18]
and ecx, 3
add ecx, 3
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x18]
shr edx, 2
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x14]
sub eax, 2
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x100119fa
jmp 0x10011b84
mov edx, dword [ebp - 0x26]
and edx, 0xffff
cmp edx, 0x11
jne 0x10011ad9
mov eax, dword [ebp - 0x27]
and eax, 0xff
add eax, 3
cmp dword [ebp - 0x14], eax
jae 0x10011a7b
cmp dword [ebp - 0x30], 0
jne 0x10011a44
jmp 0x1001278f
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x14]
add eax, 8
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x10011a39
jmp 0x10011a29
xor edx, edx
test edx, edx
jne 0x10011a29
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
mov eax, dword [ebp - 0x18]
shr eax, cl
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
mov edx, dword [ebp - 0x14]
sub edx, ecx
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10011a81
mov dword [ebp - 0x38], 0
mov ecx, dword [ebp - 0x18]
and ecx, 7
add ecx, 3
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x18]
shr edx, 3
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x14]
sub eax, 3
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x10011abc
jmp 0x10011b84
mov edx, dword [ebp - 0x27]
and edx, 0xff
add edx, 7
cmp dword [ebp - 0x14], edx
jae 0x10011b2c
cmp dword [ebp - 0x30], 0
jne 0x10011af5
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10011aea
jmp 0x10011ad9
xor ecx, ecx
test ecx, ecx
jne 0x10011ad9
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
mov edx, dword [ebp - 0x18]
shr edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x27]
and eax, 0xff
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x10011b32
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0x18]
and eax, 0x7f
add eax, 0xb
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x18]
shr ecx, 7
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
sub edx, 7
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10011b6c
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x68]
add edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x60]
mov eax, dword [ebp - 0x1c]
add ecx, dword [eax + 0x64]
cmp edx, ecx
jbe 0x10011bb2
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x1d
jmp 0x10011bea
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
sub ecx, 1
mov dword [ebp - 4], ecx
test eax, eax
je 0x10011be5
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x68]
mov ecx, dword [ebp - 0x1c]
mov dx, word [ebp - 0x38]
mov word [ecx + eax*2 + 0x70], dx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x68]
add ecx, 1
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x68], ecx
jmp 0x10011bb2
jmp case.0x100107c4.18
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0x1d
jne 0x10011bf7
jmp 0x1001278a
mov ecx, dword [ebp - 0x1c]
xor edx, edx
mov dx, word [ecx + 0x270]
test edx, edx
jne 0x10011c1f
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x1d
jmp 0x1001278a
mov edx, dword [ebp - 0x1c]
add edx, 0x530
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x6c], edx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x6c]
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x54], 9
mov edx, dword [ebp - 0x1c]
add edx, 0x2f0
push edx
mov eax, dword [ebp - 0x1c]
add eax, 0x54
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, 0x6c
push ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x60]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, 0x70
push ecx
push 1
call fcn.100172d0
add esp, 0x18
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x10011c95
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
jmp 0x1001278a
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x6c]
mov dword [ecx + 0x50], eax
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x58], 6
mov edx, dword [ebp - 0x1c]
add edx, 0x2f0
push edx
mov eax, dword [ebp - 0x1c]
add eax, 0x58
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, 0x6c
push ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x64]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x60]
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + edx*2 + 0x70]
push ecx
push 2
call fcn.100172d0
add esp, 0x18
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x10011d03
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
jmp 0x1001278a
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x13
cmp dword [ebp + 0xc], 6
jne case.0x100107c4.19
jmp 0x1001278f
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x14
cmp dword [ebp - 0x30], 6
jb 0x10011dd7
cmp dword [ebp - 0x40], 0x102
jb 0x10011dd7
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x3c]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x30]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov dword [edx + 0x38], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov dword [ecx + 0x3c], edx
xor eax, eax
test eax, eax
jne 0x10011d37
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.10016ba0
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x38]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x3c]
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10011d82
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx], 0xb
jne 0x10011dd2
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x1bc4], 0xffffffff
jmp 0x1001278a
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1bc4], 0
mov ecx, dword [ebp - 0x1c]
mov edx, 1
mov ecx, dword [ecx + 0x54]
shl edx, cl
sub edx, 1
mov eax, dword [ebp - 0x18]
and eax, edx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x4c]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
cmp ecx, dword [ebp - 0x14]
ja 0x10011e15
jmp 0x10011e59
cmp dword [ebp - 0x30], 0
jne 0x10011e20
jmp 0x1001278f
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, ecx
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10011e15
jmp 0x10011de4
mov ecx, dword [ebp - 0x28]
and ecx, 0xff
test ecx, ecx
je 0x10011f6d
mov edx, dword [ebp - 0x28]
and edx, 0xff
and edx, 0xf0
test edx, edx
jne 0x10011f6d
mov eax, dword [ebp - 0x28]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 6]
and edx, 0xffff
mov ecx, dword [ebp - 7]
and ecx, 0xff
mov eax, dword [ebp - 8]
and eax, 0xff
add ecx, eax
mov eax, 1
shl eax, cl
sub eax, 1
mov esi, dword [ebp - 0x18]
and esi, eax
mov ecx, dword [ebp - 7]
and ecx, 0xff
shr esi, cl
add edx, esi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x4c]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 7]
and edx, 0xff
mov eax, dword [ebp - 0x27]
and eax, 0xff
add edx, eax
cmp edx, dword [ebp - 0x14]
ja 0x10011ee5
jmp 0x10011f2a
cmp dword [ebp - 0x30], 0
jne 0x10011ef0
jmp 0x1001278f
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x14]
add eax, 8
mov dword [ebp - 0x14], eax
xor ecx, ecx
test ecx, ecx
jne 0x10011ee5
jmp 0x10011e87
mov ecx, dword [ebp - 7]
and ecx, 0xff
mov edx, dword [ebp - 0x18]
shr edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 7]
and eax, 0xff
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x10011f2a
mov eax, dword [ebp - 7]
and eax, 0xff
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x1bc4]
add edx, eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1bc4], edx
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
mov edx, dword [ebp - 0x18]
shr edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x27]
and eax, 0xff
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x10011f6d
mov eax, dword [ebp - 0x27]
and eax, 0xff
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x1bc4]
add edx, eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1bc4], edx
mov ecx, dword [ebp - 0x26]
and ecx, 0xffff
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x40], ecx
mov eax, dword [ebp - 0x28]
and eax, 0xff
test eax, eax
jne 0x10011fd9
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x19
jmp 0x1001278a
mov edx, dword [ebp - 0x28]
and edx, 0xff
and edx, 0x20
test edx, edx
je 0x10012004
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1bc4], 0xffffffff
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0xb
jmp 0x1001278a
mov edx, dword [ebp - 0x28]
and edx, 0xff
and edx, 0x40
test edx, edx
je 0x1001202c
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x1d
jmp 0x1001278a
mov edx, dword [ebp - 0x28]
and edx, 0xff
and edx, 0xf
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x48], edx
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x15
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x48], 0
je 0x10012104
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax + 0x48]
jae 0x100120a3
cmp dword [ebp - 0x30], 0
jne 0x1001206a
jmp 0x1001278f
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, ecx
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x1001205f
jmp 0x10012054
xor ecx, ecx
test ecx, ecx
jne 0x10012054
mov edx, dword [ebp - 0x1c]
mov eax, 1
mov ecx, dword [edx + 0x48]
shl eax, cl
sub eax, 1
mov ecx, dword [ebp - 0x18]
and ecx, eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x40]
add eax, ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x40], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx + 0x48]
shr eax, cl
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
sub edx, dword [ecx + 0x48]
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x100120cc
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x1bc4]
mov eax, dword [ebp - 0x1c]
add edx, dword [eax + 0x48]
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x1bc4], edx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x40]
mov dword [edx + 0x1bc8], ecx
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x16
mov eax, dword [ebp - 0x1c]
mov edx, 1
mov ecx, dword [eax + 0x58]
shl edx, cl
sub edx, 1
mov eax, dword [ebp - 0x18]
and eax, edx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x50]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
cmp ecx, dword [ebp - 0x14]
ja 0x1001214d
jmp 0x10012191
cmp dword [ebp - 0x30], 0
jne 0x10012158
jmp 0x1001278f
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, ecx
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x1001214d
jmp case.0x100107c4.22
mov ecx, dword [ebp - 0x28]
and ecx, 0xff
and ecx, 0xf0
test ecx, ecx
jne 0x10012295
mov edx, dword [ebp - 0x28]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 6]
and eax, 0xffff
mov ecx, dword [ebp - 7]
and ecx, 0xff
mov edx, dword [ebp - 8]
and edx, 0xff
add ecx, edx
mov edx, 1
shl edx, cl
sub edx, 1
mov esi, dword [ebp - 0x18]
and esi, edx
mov ecx, dword [ebp - 7]
and ecx, 0xff
shr esi, cl
add eax, esi
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x50]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 7]
and ecx, 0xff
mov edx, dword [ebp - 0x27]
and edx, 0xff
add ecx, edx
cmp ecx, dword [ebp - 0x14]
ja 0x1001220d
jmp 0x10012252
cmp dword [ebp - 0x30], 0
jne 0x10012218
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x1001220d
jmp 0x100121ae
mov ecx, dword [ebp - 7]
and ecx, 0xff
mov edx, dword [ebp - 0x18]
shr edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 7]
and eax, 0xff
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x10012252
mov eax, dword [ebp - 7]
and eax, 0xff
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x1bc4]
add edx, eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1bc4], edx
mov ecx, dword [ebp - 0x27]
and ecx, 0xff
mov edx, dword [ebp - 0x18]
shr edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x27]
and eax, 0xff
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
test edx, edx
jne 0x10012295
mov eax, dword [ebp - 0x27]
and eax, 0xff
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x1bc4]
add edx, eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1bc4], edx
mov ecx, dword [ebp - 0x28]
and ecx, 0xff
and ecx, 0x40
test ecx, ecx
je 0x10012300
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
jmp 0x1001278a
mov ecx, dword [ebp - 0x26]
and ecx, 0xffff
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x44], ecx
mov eax, dword [ebp - 0x28]
and eax, 0xff
and eax, 0xf
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x17
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x48], 0
je 0x100123e4
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ecx + 0x48]
jae 0x10012383
cmp dword [ebp - 0x30], 0
jne 0x1001234c
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10012341
jmp 0x10012336
xor ecx, ecx
test ecx, ecx
jne 0x10012336
mov edx, dword [ebp - 0x1c]
mov eax, 1
mov ecx, dword [edx + 0x48]
shl eax, cl
sub eax, 1
mov ecx, dword [ebp - 0x18]
and ecx, eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x44]
add eax, ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x44], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx + 0x48]
shr eax, cl
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
sub edx, dword [ecx + 0x48]
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x100123ac
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x1bc4]
mov eax, dword [ebp - 0x1c]
add edx, dword [eax + 0x48]
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x1bc4], edx
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x18
cmp dword [ebp - 0x40], 0
jne 0x100123f8
jmp 0x1001278f
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x40]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x44]
cmp edx, dword [ebp - 4]
jbe 0x100124a2
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x44]
sub ecx, dword [ebp - 4]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
cmp eax, dword [edx + 0x2c]
jbe 0x1001244b
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x1bc0], 0
je 0x1001244b
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
jmp 0x1001278a
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x30]
jbe 0x10012478
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 4]
sub ecx, dword [eax + 0x30]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x28]
sub eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x34]
add edx, eax
mov dword [ebp - 0x34], edx
jmp 0x1001248c
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x30]
sub ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x34]
add eax, ecx
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x40]
jbe 0x100124a0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x40]
mov dword [ebp - 4], ecx
jmp 0x100124b7
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
sub eax, dword [edx + 0x44]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x40]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x40]
jbe 0x100124c5
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x40]
sub edx, dword [ebp - 4]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x40]
sub ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x40], ecx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x34]
add ecx, 1
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 4]
sub edx, 1
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
jne 0x100124dd
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x40], 0
jne 0x1001251a
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x14
jmp 0x1001278a
cmp dword [ebp - 0x40], 0
jne 0x1001252a
jmp 0x1001278f
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov cl, byte [eax + 0x40]
mov byte [edx], cl
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x40]
sub eax, 1
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x14
jmp 0x1001278a
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 8], 0
je 0x100126b4
cmp dword [ebp - 0x14], 0x20
jae 0x100125aa
cmp dword [ebp - 0x30], 0
jne 0x10012573
jmp 0x1001278f
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x10012568
jmp 0x10012562
xor ecx, ecx
test ecx, ecx
jne 0x10012562
mov edx, dword [ebp - 0xc]
sub edx, dword [ebp - 0x40]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov dword [edx + 0x14], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x1c]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x1c], ecx
cmp dword [ebp - 0xc], 0
je 0x1001262e
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x10], 0
je 0x10012602
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0x24]
sub edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x18]
push ecx
call fcn.1001803a
mov dword [ebp - 0x50], eax
jmp 0x1001261c
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
push edx
call fcn.10017a20
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x50]
mov dword [edx + 0x30], eax
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x10], 0
je 0x10012645
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x54], eax
jmp 0x1001267d
mov ecx, dword [ebp - 0x18]
shr ecx, 0x18
and ecx, 0xff
mov edx, dword [ebp - 0x18]
shr edx, 8
and edx, 0xff00
add ecx, edx
mov eax, dword [ebp - 0x18]
and eax, 0xff00
shl eax, 8
add ecx, eax
mov edx, dword [ebp - 0x18]
and edx, 0xff
shl edx, 0x18
add ecx, edx
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x54]
cmp ecx, dword [eax + 0x18]
je 0x100126a0
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d
jmp 0x1001278a
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor ecx, ecx
test ecx, ecx
jne 0x100126a0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x1b
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 8], 0
je 0x1001275b
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x10], 0
je 0x1001275b
cmp dword [ebp - 0x14], 0x20
jae 0x10012721
cmp dword [ebp - 0x30], 0
jne 0x100126e8
jmp 0x1001278f
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, ecx
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x18]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
xor eax, eax
test eax, eax
jne 0x100126dd
jmp 0x100126d7
xor ecx, ecx
test ecx, ecx
jne 0x100126d7
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp eax, dword [edx + 0x1c]
je 0x10012747
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx], 0x1d
jmp 0x1001278a
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor eax, eax
test eax, eax
jne 0x10012747
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], 0x1c
mov dword [ebp - 0x20], 1
jmp 0x1001278f
mov dword [ebp - 0x20], 0xfffffffd
jmp 0x1001278f
mov eax, 0xfffffffc
jmp 0x1001292e
mov eax, 0xfffffffe
jmp 0x1001292e
jmp 0x100107af
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x40]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x3c]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x30]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ecx + 0x38], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x3c], ecx
xor edx, edx
test edx, edx
jne 0x1001278f
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x28], 0
jne 0x100127e6
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx], 0x1a
jge 0x1001280d
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
cmp eax, dword [edx + 0x10]
je 0x1001280d
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.100129ee
add esp, 8
test eax, eax
je 0x1001280d
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1e
mov eax, 0xfffffffc
jmp 0x1001292e
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
sub edx, dword [ecx + 4]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
sub ecx, dword [eax + 0x10]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
add eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
add eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x1c]
add eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 8], 0
je 0x100128b8
cmp dword [ebp - 0xc], 0
je 0x100128b8
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x10], 0
je 0x10012889
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
sub eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
push edx
call fcn.1001803a
mov dword [ebp - 0x58], eax
jmp 0x100128a6
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
sub edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x18]
push ecx
call fcn.10017a20
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
mov dword [edx + 0x18], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x58]
mov dword [ecx + 0x30], edx
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0x13
je 0x100128d1
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx], 0xe
je 0x100128d1
mov dword [ebp - 0x5c], 0
jmp 0x100128d8
mov dword [ebp - 0x5c], 0x100
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 4]
neg eax
sbb eax, eax
and eax, 0x40
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x3c]
add edx, eax
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp dword [eax], 0xb
setne cl
dec ecx
and ecx, 0x80
mov eax, dword [ebp - 0x5c]
add eax, edx
add ecx, eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x2c], ecx
cmp dword [ebp - 0x2c], 0
jne 0x10012918
cmp dword [ebp - 0xc], 0
je 0x1001291e
cmp dword [ebp + 0xc], 4
jne 0x1001292b
cmp dword [ebp - 0x20], 0
jne 0x1001292b
mov dword [ebp - 0x20], 0xfffffffb
mov eax, dword [ebp - 0x20]
pop esi
mov esp, ebp
pop ebp
ret 8