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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov ebp, dword [esp + 0xc0]
mov eax, dword [ebp + 0x18e0]
mov edi, dword [ebp + 0x3c4c]
mov dword [esp + 0x2c], eax
lea eax, [ebp + 0x3c40]
mov dword [esp + 0x20], eax
lea eax, [ebp + 0x2ecd]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x3c50]
lea ebx, [eax - 1]
shl ebx, 7
shr ebx, 8
add ebx, 1
test edi, edi
js 0x7013214a
mov eax, dword [ebp + 0x3c48]
mov edx, ebx
xor esi, esi
shl edx, 0x18
cmp eax, edx
jb 0x70130121
mov esi, dword [ebp + 0x3c50]
sub eax, edx
sub esi, ebx
mov ebx, esi
mov esi, 1
movzx ecx, byte [ebx + 0x707a4920]
mov dword [ebp + 0x18b4], esi
mov byte [ebp + 0x3d2f], 0
movzx edx, cl
shl ebx, cl
sub edi, edx
shl eax, cl
test esi, esi
mov ecx, eax
mov dword [ebp + 0x3c48], eax
mov eax, ebx
mov dword [ebp + 0x3c4c], edi
mov dword [ebp + 0x3c50], ebx
jne 0x70131a23
mov esi, dword [ebp + 0x1898]
test esi, esi
jne 0x701318f3
mov ebx, dword [ebp + 0x18a8]
xor ecx, ecx
mov eax, dword [ebp + 0x18ac]
mov dword [ebp + 0xc40], 0
mov dword [esp + 0x60], 0
lea edx, [ebx - 1]
lea edi, [eax - 1]
shl edx, 7
mov dword [esp + 0x64], edi
lea edi, [ebp + 0x2ee0]
shl dword [esp + 0x64], 7
test ebx, ebx
mov dword [ebp + 0xc44], edx
mov dword [esp + 0x70], edi
jle 0x70130ab4
mov edi, dword [esp + 0x64]
test eax, eax
mov dword [ebp + 0xc38], 0
mov dword [ebp + 0xc3c], edi
mov edi, dword [esp + 0x2c]
jle 0x701318ea
mov eax, edi
add eax, 4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], 0
lea esi, [esi]
cmp byte [ebp + 0xc15], 0
jne 0x70130c32
mov ecx, dword [ebp + 0x1898]
test ecx, ecx
jne 0x7013020f
mov eax, dword [esp + 0x1c]
mov byte [eax + 0xb], 0
mov edx, dword [ebp + 0x18b4]
test edx, edx
jne 0x70130d27
mov eax, dword [esp + 0x1c]
mov byte [eax + 9], 0
mov byte [eax + 3], 0
mov eax, dword [ebp + 0x1898]
test eax, eax
je 0x701308e1
mov eax, dword [ebp + 0x3c50]
movzx ebx, byte [ebp + 0x3d2c]
mov esi, dword [ebp + 0x3c4c]
sub eax, 1
imul ebx, eax
shr ebx, 8
add ebx, 1
test esi, esi
js 0x701310d3
mov eax, dword [ebp + 0x3c48]
mov ecx, ebx
xor edx, edx
shl ecx, 0x18
cmp eax, ecx
jb 0x70130280
mov edi, dword [ebp + 0x3c50]
sub eax, ecx
mov edx, 1
sub edi, ebx
mov ebx, edi
movzx ecx, byte [ebx + 0x707a4920]
shl eax, cl
movzx edi, cl
mov dword [ebp + 0x3c48], eax
mov eax, dword [esp + 0x1c]
sub esi, edi
shl ebx, cl
test dl, dl
mov dword [ebp + 0x3c4c], esi
mov dword [ebp + 0x3c50], ebx
mov byte [eax + 2], dl
je 0x70130ac0
mov esi, eax
imul eax, dword [ebp + 0xbdc], 0x4c
mov edi, esi
mov byte [esi + 0xa], 0
movzx esi, byte [ebp + 0x3d2d]
sub edi, eax
mov eax, dword [ebp + 0x3c50]
mov dword [esp + 0x10], edi
lea edi, [ebp + 0x2624]
sub eax, 1
imul esi, eax
mov eax, dword [ebp + 0x3c4c]
shr esi, 8
add esi, 1
test eax, eax
js 0x701311d4
mov edx, dword [ebp + 0x3c48]
mov ecx, esi
shl ecx, 0x18
cmp edx, ecx
jb 0x70130f9d
mov ebx, dword [ebp + 0x3c50]
sub edx, ecx
sub ebx, esi
movzx ecx, byte [ebx + 0x707a4920]
movzx esi, cl
sub eax, esi
shl ebx, cl
shl edx, cl
test eax, eax
movzx ecx, byte [ebp + 0x3d2e]
mov dword [ebp + 0x3c48], edx
mov dword [ebp + 0x3c4c], eax
mov dword [ebp + 0x3c50], ebx
js 0x701314b0
sub ebx, 1
movzx ecx, cl
imul ebx, ecx
mov byte [esp + 0x14], 2
shr ebx, 8
add ebx, 1
mov ecx, ebx
shl ecx, 0x18
cmp ecx, edx
ja 0x7013036f
mov esi, dword [ebp + 0x3c50]
sub edx, ecx
mov byte [esp + 0x14], 3
sub esi, ebx
mov ebx, esi
movzx ecx, byte [ebx + 0x707a4920]
movzx esi, cl
sub eax, esi
mov esi, dword [esp + 0x1c]
mov dword [ebp + 0x3c4c], eax
movzx eax, byte [esp + 0x14]
shl edx, cl
shl ebx, cl
mov dword [ebp + 0x3c48], edx
mov dword [ebp + 0x3c50], ebx
mov byte [esi + 2], al
mov eax, dword [esp + 0x10]
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
movzx eax, byte [eax + 2]
test al, al
je 0x70130da2
mov esi, dword [esp + 0x10]
mov edx, dword [esi + 4]
test edx, edx
je 0x7013110d
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x94], edx
movzx edx, byte [esi + 2]
mov esi, dword [edi + edx*4]
cmp dword [edi + eax*4], esi
je 0x7013136d
neg word [esp + 0x94]
neg word [esp + 0x96]
lea eax, [esp + 0x94]
mov dword [esp + 0x14], eax
lea esi, [esp + 0x84]
mov dword [esi], 2
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
sub eax, edx
sub edx, 0x4c
movzx ebx, byte [eax + edx + 2]
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], edx
test bl, bl
je 0x701304b4
mov edx, dword [eax + edx + 4]
test edx, edx
je 0x70131100
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 2]
mov eax, edx
mov ecx, dword [edi + ecx*4]
cmp dword [edi + ebx*4], ecx
je 0x7013049c
neg eax
mov dx, ax
mov ecx, edx
movzx eax, dx
sar ecx, 0x10
neg ecx
shl ecx, 0x10
or eax, ecx
mov edx, dword [esp + 0x14]
cmp dword [edx], eax
je 0x701304b1
mov dword [edx + 4], eax
lea eax, [edx + 4]
add esi, 4
mov dword [esp + 0x14], eax
add dword [esi], 2
mov eax, dword [esp + 0x10]
movzx ebx, byte [eax - 0x4a]
test bl, bl
je 0x70130509
mov edx, dword [eax - 0x48]
test edx, edx
je 0x701310ea
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 2]
mov eax, edx
mov ecx, dword [edi + ecx*4]
cmp dword [edi + ebx*4], ecx
je 0x701304f1
neg eax
mov dx, ax
mov ecx, edx
movzx eax, dx
sar ecx, 0x10
neg ecx
shl ecx, 0x10
or eax, ecx
mov edi, dword [esp + 0x14]
cmp dword [edi], eax
je 0x70130506
mov dword [edi + 4], eax
lea eax, [edi + 4]
add esi, 4
mov dword [esp + 0x14], eax
add dword [esi], 1
mov eax, dword [esp + 0x80]
mov edi, dword [ebp + 0x3c50]
shl eax, 4
lea esi, [edi - 1]
imul esi, dword [eax + 0x707aee80]
mov eax, dword [ebp + 0x3c4c]
shr esi, 8
add esi, 1
test eax, eax
js 0x701311bd
mov edx, dword [ebp + 0x3c48]
mov ecx, esi
shl ecx, 0x18
cmp edx, ecx
jb 0x70130fc4
mov ebx, dword [ebp + 0x3c50]
sub edx, ecx
mov edi, dword [esp + 0x94]
sub ebx, esi
movzx ecx, byte [ebx + 0x707a4920]
movzx esi, cl
sub eax, esi
shl ebx, cl
shl edx, cl
mov ecx, eax
mov dword [ebp + 0x3c4c], eax
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x3c48], edx
mov dword [ebp + 0x3c50], ebx
cmp dword [eax], edi
sete al
mov esi, eax
xor eax, eax
cmp dword [esp + 0x8c], 0
setg al
and eax, esi
mov esi, dword [esp + 0x88]
add eax, dword [esp + 0x84]
cmp eax, esi
mov dword [esp + 0x84], eax
jge 0x701305d7
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x84], esi
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], eax
mov eax, esi
shl eax, 4
sub ebx, 1
imul ebx, dword [eax + 0x707aee84]
mov eax, ecx
shr ebx, 8
add ebx, 1
test ecx, ecx
js 0x70131350
mov ecx, ebx
shl ecx, 0x18
cmp ecx, edx
ja 0x70131124
mov esi, dword [ebp + 0x3c50]
sub edx, ecx
sub esi, ebx
mov ebx, edx
movzx ecx, byte [esi + 0x707a4920]
movzx edx, cl
sub eax, edx
mov edx, dword [esp + 0x88]
shl esi, cl
mov dword [ebp + 0x3c50], esi
sub esi, 1
shl ebx, cl
shl edx, 4
imul esi, dword [edx + 0x707aee88]
mov edx, eax
mov dword [ebp + 0x3c48], ebx
mov dword [ebp + 0x3c4c], eax
shr esi, 8
add esi, 1
test eax, eax
js 0x70131493
mov eax, esi
shl eax, 0x18
cmp eax, ebx
ja 0x7013123b
mov edi, dword [ebp + 0x3c50]
sub ebx, eax
mov dword [esp + 0x14], ebx
mov ebx, dword [ebp + 0xc40]
sub edi, esi
mov esi, dword [esp + 0x80]
movzx ecx, byte [edi + 0x707a4920]
shl dword [esp + 0x14], cl
movzx eax, cl
shl edi, cl
sub edx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], edi
mov ecx, dword [ebp + 0xc3c]
mov dword [ebp + 0x3c50], edi
mov edi, dword [ebp + 0xc44]
mov dword [esp + 0x3c], edx
mov dword [ebp + 0x3c4c], edx
mov edx, dword [ebp + 0xc38]
mov dword [ebp + 0x3c48], eax
lea eax, [ebx - 0x80]
mov dword [esp + 0x40], eax
lea eax, [edi + 0x80]
mov dword [esp + 0x44], eax
lea eax, [ecx + 0x80]
mov dword [esp + 0x48], eax
lea eax, [edx - 0x80]
mov dword [esp + 0x4c], eax
xor eax, eax
cmp dword [esp + 0x84], esi
setge al
lea esi, [esp + eax*4 + 0x90]
mov dword [esp + 0x18], eax
movsx eax, word [esi + 2]
cmp dword [esp + 0x4c], eax
jle 0x701313ae
add edx, 0xffffff80
mov word [esi + 2], dx
movsx eax, word [esi]
cmp dword [esp + 0x40], eax
jg 0x701313cd
cmp dword [esp + 0x44], eax
jge 0x70130725
sub di, 0xff80
mov word [esi], di
mov edi, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
cmp byte [edi], 9
sete dl
cmp byte [eax + ecx], 9
sete al
movzx eax, al
add edx, eax
cmp byte [edi - 0x4c], 9
mov edi, dword [esp + 0x3c]
sete al
sub ebx, 1
movzx eax, al
lea eax, [eax + edx*2]
mov dword [esp + 0x8c], eax
shl eax, 4
imul ebx, dword [eax + 0x707aee8c]
mov eax, dword [esp + 0x14]
shr ebx, 8
add ebx, 1
test edi, edi
js 0x701319ae
mov ecx, ebx
shl ecx, 0x18
cmp ecx, eax
ja 0x701313e7
mov edx, dword [ebp + 0x3c50]
sub eax, ecx
sub edx, ebx
mov ebx, eax
movzx ecx, byte [edx + 0x707a4920]
movzx eax, cl
sub edi, eax
mov eax, edi
mov dword [ebp + 0x3c4c], edi
movzx edi, word [esi]
shl edx, cl
mov dword [ebp + 0x3c50], edx
sub edx, 1
shl ebx, cl
mov dword [ebp + 0x3c48], ebx
mov word [esp + 0x74], di
movzx edi, word [esi + 2]
mov esi, ebx
mov word [esp + 0x76], di
imul edi, edx, 0x6e
shr edi, 8
add edi, 1
test eax, eax
js 0x70131a06
mov edx, edi
shl edx, 0x18
cmp edx, esi
ja 0x701314d5
mov ebx, dword [ebp + 0x3c50]
sub esi, edx
sub ebx, edi
movzx ecx, byte [ebx + 0x707a4920]
mov edi, ebx
movzx edx, cl
sub eax, edx
shl edi, cl
mov ebx, eax
shl esi, cl
test eax, eax
mov dword [ebp + 0x3c48], esi
mov dword [ebp + 0x3c4c], eax
mov dword [ebp + 0x3c50], edi
js 0x7013212d
lea eax, [edi - 1]
imul eax, eax, 0x6f
shr eax, 8
add eax, 1
mov ecx, eax
shl ecx, 0x18
cmp ecx, esi
ja 0x701319cb
mov edx, dword [ebp + 0x3c50]
mov edi, esi
sub edi, ecx
sub edx, eax
movzx ecx, byte [edx + 0x707a4920]
shl edx, cl
movzx eax, cl
mov dword [ebp + 0x3c50], edx
sub edx, 1
sub ebx, eax
imul esi, edx, 0x96
mov edx, ebx
shl edi, cl
mov dword [ebp + 0x3c4c], ebx
mov ebx, edi
mov dword [ebp + 0x3c48], edi
shr esi, 8
add esi, 1
test edx, edx
js 0x7013216d
mov eax, esi
shl eax, 0x18
cmp eax, ebx
ja 0x70132161
mov edi, dword [ebp + 0x3c50]
sub ebx, eax
mov eax, 1
mov byte [esp + 0x6b], 1
sub edi, esi
mov esi, edi
movzx ecx, byte [esi + 0x707a4920]
mov dword [esp + 0x50], 2
movzx edi, cl
shl ebx, cl
sub edx, edi
shl esi, cl
mov dword [ebp + 0x3c48], ebx
mov ecx, esi
mov ebx, edx
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], esi
jmp 0x7013150d
mov eax, dword [ebp + 0x18b0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mov byte [eax + 2], 0
xor eax, eax
mov ebx, dword [ebp + 0x3c50]
mov edx, dword [ebp + 0x3c4c]
jmp 0x70130956
mov eax, dword [ebp + 0x3c48]
mov ecx, ebx
xor esi, esi
shl ecx, 0x18
cmp eax, ecx
jb 0x70130924
mov edi, dword [ebp + 0x3c50]
sub eax, ecx
mov si, 1
sub edi, ebx
mov ebx, edi
movzx ecx, byte [ebx + 0x707a4920]
shl eax, cl
movzx edi, cl
mov dword [ebp + 0x3c48], eax
mov eax, dword [esp + 0x10]
shl ebx, cl
sub edx, edi
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], ebx
movsx eax, byte [eax + esi + 0x70798de8]
test al, al
jle 0x70130990
movsx edi, al
sub ebx, 1
sar al, 1
movsx eax, al
movzx eax, byte [eax + 0x707992d3]
mov dword [esp + 0x10], edi
imul eax, ebx
shr eax, 8
test edx, edx
lea ebx, [eax + 1]
jns 0x70130903
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
jmp 0x70130903
mov edi, dword [esp + 0x1c]
neg eax
cmp al, 4
mov byte [edi], al
je 0x70130db9
mov ebx, dword [ebp + 0x3c50]
xor eax, eax
mov edx, dword [ebp + 0x3c4c]
jmp 0x70130a03
mov eax, dword [ebp + 0x3c48]
mov ecx, ebx
xor esi, esi
shl ecx, 0x18
cmp eax, ecx
jb 0x701309d1
mov edi, dword [ebp + 0x3c50]
sub eax, ecx
mov si, 1
sub edi, ebx
mov ebx, edi
movzx ecx, byte [ebx + 0x707a4920]
shl eax, cl
movzx edi, cl
mov dword [ebp + 0x3c48], eax
mov eax, dword [esp + 0x10]
shl ebx, cl
sub edx, edi
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], ebx
movsx eax, byte [eax + esi + 0x70798de2]
test al, al
jle 0x70130a40
movsx esi, al
sub ebx, 1
sar al, 1
movsx eax, al
movzx eax, byte [eax + 0x707992cd]
mov dword [esp + 0x10], esi
imul eax, ebx
shr eax, 8
test edx, edx
lea ebx, [eax + 1]
jns 0x701309b0
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
jmp 0x701309b0
mov edi, dword [esp + 0x1c]
neg eax
mov byte [edi + 1], al
add dword [esp + 0x28], 1
mov eax, dword [ebp + 0x18ac]
add dword [ebp + 0xc38], 0xffffff80
add dword [ebp + 0xc3c], 0xffffff80
add dword [esp + 0x1c], 0x4c
add dword [esp + 0x38], 0x4c
cmp dword [esp + 0x28], eax
jl 0x701301f0
mov ebx, dword [ebp + 0x18a8]
mov ecx, dword [ebp + 0xc40]
mov edx, dword [ebp + 0xc44]
mov edi, dword [esp + 0x1c]
add dword [esp + 0x60], 1
add ecx, 0xffffff80
add edx, 0xffffff80
add edi, 0x4c
cmp dword [esp + 0x60], ebx
mov dword [ebp + 0xc40], ecx
mov dword [ebp + 0xc44], edx
mov dword [esp + 0x2c], edi
jl 0x701301b4
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [eax + 4], 0
lea eax, [ebp + 0x2aa3]
mov ebx, dword [ebp + 0x3c50]
mov dword [esp + 0x14], eax
mov edx, dword [ebp + 0x3c4c]
xor eax, eax
jmp 0x70130b34
mov eax, dword [ebp + 0x3c48]
mov ecx, ebx
xor esi, esi
shl ecx, 0x18
cmp eax, ecx
jb 0x70130b02
mov edi, dword [ebp + 0x3c50]
sub eax, ecx
mov si, 1
sub edi, ebx
mov ebx, edi
movzx ecx, byte [ebx + 0x707a4920]
shl eax, cl
movzx edi, cl
mov dword [ebp + 0x3c48], eax
mov eax, dword [esp + 0x10]
shl ebx, cl
sub edx, edi
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], ebx
movsx eax, byte [eax + esi + 0x70798df0]
test al, al
jle 0x70130b70
mov esi, dword [esp + 0x14]
movsx edi, al
sub ebx, 1
sar al, 1
movsx eax, al
mov dword [esp + 0x10], edi
movzx eax, byte [esi + eax]
imul eax, ebx
shr eax, 8
test edx, edx
lea ebx, [eax + 1]
jns 0x70130ae1
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
jmp 0x70130ae1
mov edi, dword [esp + 0x1c]
neg eax
cmp al, 4
mov byte [edi], al
je 0x70130ff9
lea eax, [ebp + 0x2aa7]
mov ebx, dword [ebp + 0x3c50]
mov dword [esp + 0x14], eax
mov edx, dword [ebp + 0x3c4c]
xor eax, eax
jmp 0x70130bf7
mov eax, dword [ebp + 0x3c48]
mov ecx, ebx
xor esi, esi
shl ecx, 0x18
cmp eax, ecx
jb 0x70130bc1
mov edi, dword [ebp + 0x3c50]
sub eax, ecx
mov si, 1
sub edi, ebx
mov ebx, edi
movzx ecx, byte [ebx + 0x707a4920]
shl eax, cl
movzx edi, cl
mov dword [ebp + 0x3c48], eax
mov eax, dword [esp + 0x10]
shl ebx, cl
sub edx, edi
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], ebx
movsx eax, byte [eax + esi + 0x70798de2]
test al, al
jle 0x70130a40
movsx esi, al
sub ebx, 1
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x14]
sar al, 1
movsx eax, al
movzx eax, byte [esi + eax]
imul eax, ebx
shr eax, 8
test edx, edx
lea ebx, [eax + 1]
jns 0x70130ba0
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
jmp 0x70130ba0
cmp byte [ebp + 0xc14], 0
je 0x7013020f
mov eax, dword [ebp + 0x3c50]
movzx ebx, byte [ebp + 0xc18]
sub eax, 1
imul ebx, eax
mov eax, dword [ebp + 0x3c4c]
shr ebx, 8
add ebx, 1
test eax, eax
js 0x701318d3
mov esi, dword [ebp + 0x3c48]
mov edx, ebx
shl edx, 0x18
cmp esi, edx
jb 0x701312d4
mov edi, dword [ebp + 0x3c50]
sub esi, edx
sub edi, ebx
movzx ecx, byte [edi + 0x707a4920]
movzx edx, cl
sub eax, edx
movzx edx, byte [ebp + 0xc1a]
shl edi, cl
shl esi, cl
test eax, eax
mov ebx, edi
mov dword [ebp + 0x3c50], edi
mov edi, eax
mov byte [esp + 0x10], dl
mov edx, esi
mov dword [ebp + 0x3c48], esi
mov dword [ebp + 0x3c4c], eax
js 0x70131ba6
movzx eax, byte [esp + 0x10]
sub ebx, 1
mov esi, 2
imul ebx, eax
shr ebx, 8
add ebx, 1
mov eax, ebx
shl eax, 0x18
cmp eax, edx
ja 0x70130cee
mov esi, dword [ebp + 0x3c50]
sub edx, eax
sub esi, ebx
mov ebx, esi
mov esi, 3
movzx ecx, byte [ebx + 0x707a4920]
movzx eax, cl
shl edx, cl
sub edi, eax
mov dword [ebp + 0x3c48], edx
mov dword [ebp + 0x3c4c], edi
mov edi, dword [esp + 0x1c]
shl ebx, cl
mov eax, esi
mov dword [ebp + 0x3c50], ebx
mov byte [edi + 0xb], al
mov edx, dword [ebp + 0x18b4]
test edx, edx
je 0x7013021d
mov eax, dword [ebp + 0x3c50]
movzx ebx, byte [ebp + 0x3d2f]
mov edx, dword [ebp + 0x3c4c]
sub eax, 1
imul ebx, eax
shr ebx, 8
add ebx, 1
test edx, edx
js 0x701311eb
mov eax, dword [ebp + 0x3c48]
mov ecx, ebx
xor esi, esi
shl ecx, 0x18
cmp eax, ecx
jb 0x70130d70
mov edi, dword [ebp + 0x3c50]
sub eax, ecx
mov esi, 1
sub edi, ebx
mov ebx, edi
movzx ecx, byte [ebx + 0x707a4920]
movzx edi, cl
sub edx, edi
mov edi, dword [esp + 0x1c]
shl eax, cl
mov dword [ebp + 0x3c48], eax
shl ebx, cl
mov eax, esi
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], ebx
mov byte [edi + 9], al
mov eax, edi
jmp 0x70130225
lea eax, [esp + 0x90]
mov dword [esp + 0x14], eax
lea esi, [esp + 0x80]
jmp 0x7013044c
imul eax, dword [esp + 0x14], 0x4c
mov esi, edi
mov byte [edi + 3], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], esi
sub edi, eax
mov eax, esi
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
sar eax, 2
test eax, eax
jne 0x70130f40
nop
mov eax, dword [esp + 0x30]
movzx eax, byte [eax]
cmp al, 2
je 0x70130f89
jbe 0x70130f75
cmp al, 3
mov edx, 1
je 0x70130e22
cmp al, 4
jne 0x70130f82
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 0x3c]
test byte [esp + 0x18], 3
jne 0x70130f52
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
movzx ecx, byte [eax + edi - 0x4c]
cmp cl, 2
je 0x70130f93
jbe 0x70130f60
cmp cl, 3
mov eax, 1
je 0x70130e63
cmp cl, 4
jne 0x70130f6e
mov eax, dword [esp + 0x24]
mov eax, dword [eax - 0x34]
imul edx, edx, 0x5a
mov ebx, dword [ebp + 0x3c50]
lea eax, [eax + eax*8]
lea eax, [eax + edx + 0x70798f40]
mov edx, dword [ebp + 0x3c4c]
mov dword [esp + 0x14], eax
xor eax, eax
jmp 0x70130ed8
mov eax, dword [ebp + 0x3c48]
mov ecx, ebx
xor esi, esi
shl ecx, 0x18
cmp eax, ecx
jb 0x70130ea6
mov esi, dword [ebp + 0x3c50]
sub eax, ecx
sub esi, ebx
mov ebx, esi
mov esi, 1
movzx ecx, byte [ebx + 0x707a4920]
shl eax, cl
movzx edi, cl
mov dword [ebp + 0x3c48], eax
mov eax, dword [esp + 0x10]
shl ebx, cl
sub edx, edi
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], ebx
movsx eax, byte [eax + esi + 0x70798df8]
test al, al
jle 0x70130f13
mov esi, dword [esp + 0x14]
movsx edi, al
sub ebx, 1
sar al, 1
movsx eax, al
mov dword [esp + 0x10], edi
movzx eax, byte [esi + eax]
imul eax, ebx
shr eax, 8
test edx, edx
lea ebx, [eax + 1]
jns 0x70130e84
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
jmp 0x70130e84
mov edi, dword [esp + 0x24]
neg eax
add dword [esp + 0x18], 1
add dword [esp + 0x24], 4
cmp dword [esp + 0x18], 0x10
mov dword [edi + 0xc], eax
je 0x701309a0
mov eax, dword [esp + 0x18]
sar eax, 2
test eax, eax
je 0x70130df0
mov eax, dword [esp + 0x24]
test byte [esp + 0x18], 3
mov edx, dword [eax - 4]
je 0x70130e2d
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
jmp 0x70130e63
cmp cl, 1
mov eax, 2
je 0x70130e63
xor eax, eax
jmp 0x70130e63
cmp al, 1
mov edx, 2
je 0x70130e22
xor edx, edx
jmp 0x70130e22
mov edx, 3
jmp 0x70130e22
mov eax, 3
jmp 0x70130e63
movzx ecx, byte [esi + 0x707a4920]
movzx ebx, cl
shl edx, cl
sub eax, ebx
shl esi, cl
mov dword [ebp + 0x3c48], edx
mov dword [ebp + 0x3c4c], eax
mov dword [ebp + 0x3c50], esi
jmp 0x7013039d
movzx ecx, byte [esi + 0x707a4920]
movzx ebx, cl
sub eax, ebx
mov dword [ebp + 0x3c4c], eax
mov eax, dword [esp + 0x1c]
shl edx, cl
shl esi, cl
mov dword [ebp + 0x3c48], edx
mov dword [ebp + 0x3c50], esi
mov byte [eax], 7
mov dword [eax + 4], 0
jmp 0x70130a49
lea eax, [ebp + 0x2a9a]
mov byte [edi + 3], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
nop
mov ebx, dword [ebp + 0x3c50]
xor eax, eax
mov edi, dword [ebp + 0x3c4c]
jmp 0x70131071
mov eax, dword [ebp + 0x3c48]
mov ecx, ebx
xor edx, edx
shl ecx, 0x18
cmp eax, ecx
jb 0x7013103f
mov esi, dword [ebp + 0x3c50]
sub eax, ecx
mov dl, 1
sub esi, ebx
mov ebx, esi
movzx ecx, byte [ebx + 0x707a4920]
shl eax, cl
movzx esi, cl
mov dword [ebp + 0x3c48], eax
mov eax, dword [esp + 0x10]
shl ebx, cl
sub edi, esi
mov dword [ebp + 0x3c4c], edi
mov dword [ebp + 0x3c50], ebx
movsx eax, byte [eax + edx + 0x70798df8]
test al, al
jle 0x701310b0
mov edx, dword [esp + 0x14]
movsx esi, al
sub ebx, 1
sar al, 1
movsx eax, al
mov dword [esp + 0x10], esi
movzx eax, byte [edx + eax]
imul eax, ebx
shr eax, 8
test edi, edi
lea ebx, [eax + 1]
jns 0x70131020
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c4c]
jmp 0x70131020
mov esi, dword [esp + 0x18]
neg eax
mov edi, dword [esp + 0x1c]
add dword [esp + 0x18], 1
cmp dword [esp + 0x18], 0x10
mov dword [edi + esi*4 + 0xc], eax
jne 0x70131010
jmp 0x70130b80
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov esi, dword [ebp + 0x3c4c]
jmp 0x7013025e
mov eax, dword [esp + 0x80]
add eax, 1
mov dword [esp + 0x80], eax
jmp 0x70130510
add dword [esp + 0x80], 2
jmp 0x701304b4
lea eax, [esp + 0x90]
mov dword [esp + 0x14], eax
lea esi, [esp + 0x80]
jmp 0x70130446
movzx ecx, byte [ebx + 0x707a4920]
mov edi, dword [esp + 0x1c]
movzx esi, cl
shl edx, cl
sub eax, esi
shl ebx, cl
mov dword [ebp + 0x3c48], edx
mov dword [ebp + 0x3c4c], eax
mov dword [ebp + 0x3c50], ebx
mov byte [edi], 5
mov eax, dword [esp + 0x94]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x5c]
mov edx, dword [ebp + 0xc38]
movsx eax, word [eax + edi + 2]
lea ecx, [edx - 0x80]
cmp eax, ecx
jge 0x70131202
mov eax, dword [esp + 0x24]
add edx, 0xffffff80
mov word [eax + edi + 2], dx
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 0xc40]
movsx eax, word [eax]
lea ecx, [edx - 0x80]
cmp eax, ecx
jl 0x7013122c
mov edx, dword [ebp + 0xc44]
lea ecx, [edx + 0x80]
cmp eax, ecx
jle 0x70130a49
mov eax, dword [esp + 0x38]
sub dx, 0xff80
mov word [eax], dx
jmp 0x70130a49
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov eax, dword [ebp + 0x3c4c]
jmp 0x70130537
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov eax, dword [ebp + 0x3c4c]
jmp 0x701302f3
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
jmp 0x70130d4e
mov edx, dword [ebp + 0xc3c]
lea ecx, [edx + 0x80]
cmp eax, ecx
jle 0x70131181
mov eax, dword [esp + 0x24]
sub dx, 0xff80
mov edi, dword [esp + 0x5c]
mov word [eax + edi + 2], dx
jmp 0x70131181
mov eax, dword [esp + 0x38]
add edx, 0xffffff80
mov word [eax], dx
jmp 0x70130a49
movzx ecx, byte [esi + 0x707a4920]
mov edi, dword [esp + 0x1c]
movzx eax, cl
sub edx, eax
shl ebx, cl
shl esi, cl
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c48], ebx
mov dword [ebp + 0x3c50], esi
mov byte [edi], 6
mov eax, dword [esp + 0x98]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x5c]
mov edx, dword [ebp + 0xc38]
movsx eax, word [eax + edi + 2]
lea ecx, [edx - 0x80]
cmp eax, ecx
jge 0x70131384
mov eax, dword [esp + 0x24]
add edx, 0xffffff80
mov word [eax + edi + 2], dx
mov eax, dword [esp + 0x38]
movsx edx, word [eax]
mov eax, dword [ebp + 0xc40]
lea ecx, [eax - 0x80]
cmp edx, ecx
jl 0x701313d8
mov eax, dword [ebp + 0xc44]
lea ecx, [eax + 0x80]
cmp edx, ecx
jle 0x70130a49
mov edi, dword [esp + 0x38]
sub ax, 0xff80
mov word [edi], ax
jmp 0x70130a49
movzx ecx, byte [ebx + 0x707a4920]
movzx edx, cl
sub eax, edx
movzx edx, byte [ebp + 0xc19]
shl ebx, cl
mov dword [ebp + 0x3c50], ebx
sub ebx, 1
shl esi, cl
imul ebx, edx
mov dword [ebp + 0x3c48], esi
mov dword [ebp + 0x3c4c], eax
shr ebx, 8
add ebx, 1
test eax, eax
js 0x70131991
mov edi, eax
mov edx, esi
mov eax, ebx
xor esi, esi
shl eax, 0x18
cmp eax, edx
ja 0x70131331
mov esi, dword [ebp + 0x3c50]
sub edx, eax
sub esi, ebx
mov ebx, esi
mov esi, 1
movzx ecx, byte [ebx + 0x707a4920]
movzx eax, cl
shl edx, cl
sub edi, eax
mov dword [ebp + 0x3c48], edx
mov dword [ebp + 0x3c4c], edi
jmp 0x70130d08
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c48]
mov eax, dword [ebp + 0x3c4c]
jmp 0x701305f4
lea eax, [esp + 0x94]
mov dword [esp + 0x14], eax
lea esi, [esp + 0x84]
jmp 0x70130446
mov edx, dword [ebp + 0xc3c]
lea ecx, [edx + 0x80]
cmp eax, ecx
jle 0x70131298
mov eax, dword [esp + 0x24]
sub dx, 0xff80
mov edi, dword [esp + 0x5c]
mov word [eax + edi + 2], dx
jmp 0x70131298
cmp dword [esp + 0x48], eax
jge 0x7013070b
movsx eax, word [esi]
sub cx, 0xff80
cmp dword [esp + 0x40], eax
mov word [esi + 2], cx
jle 0x70130718
add ebx, 0xffffff80
mov word [esi], bx
jmp 0x70130725
mov edi, dword [esp + 0x38]
add eax, 0xffffff80
mov word [edi], ax
jmp 0x70130a49
movzx ecx, byte [ebx + 0x707a4920]
mov edx, dword [esp + 0x6c]
shl ebx, cl
movzx esi, cl
mov dword [ebp + 0x3c50], ebx
mov ebx, dword [esp + 0x20]
shl eax, cl
sub edi, esi
mov dword [ebp + 0x3c48], eax
mov dword [ebp + 0x3c4c], edi
mov eax, ebx
call fcn.7012fc80
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x70]
add eax, eax
mov word [edi + esi], ax
mov eax, ebx
call fcn.7012fc80
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
lea edx, [eax + eax]
mov word [edi + esi + 2], dx
movzx eax, word [ecx]
add ax, word [esp + ebx*4 + 0x90]
mov word [ecx], ax
movsx ecx, ax
add dx, word [esp + ebx*4 + 0x92]
cmp dword [esp + 0x44], ecx
mov word [edi + esi + 2], dx
movsx edx, dx
mov edi, dword [esp + 0x1c]
setl al
cmp dword [esp + 0x40], ecx
mov byte [edi], 8
setg cl
or eax, ecx
cmp dword [esp + 0x4c], edx
setg cl
or eax, ecx
cmp dword [esp + 0x48], edx
setl dl
or eax, edx
mov byte [edi + 0xa], al
jmp 0x70130a49
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov ebx, dword [ebp + 0x3c48]
mov edx, dword [ebp + 0x3c4c]
jmp 0x70130653
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov dword [esp], eax
call fcn.7012faa0
mov eax, dword [ebp + 0x3c4c]
mov edx, dword [ebp + 0x3c48]
mov ecx, dword [esp + 0x14]
jmp 0x70130341
movzx ecx, byte [edi + 0x707a4920]
mov byte [esp + 0x6b], 3
mov dword [esp + 0x50], 0x10
movzx edx, cl
sub eax, edx
shl edi, cl
mov ebx, eax
shl esi, cl
mov ecx, edi
mov dword [ebp + 0x3c4c], eax
mov eax, 3
mov dword [ebp + 0x3c48], esi
mov dword [ebp + 0x3c50], edi
mov edi, eax
movzx eax, byte [eax + 0x707a5320]
shl edi, 4
mov esi, edi
mov dword [esp + 0x54], edi
xor edi, edi
mov byte [esp + 0x6a], al
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov eax, esi
movzx eax, byte [eax + edi + 0x707a54c0]
test al, 3
movzx edx, al
jne 0x7013179c
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
cmp byte [eax + edi], 9
je 0x70131803
mov edi, dword [eax + edi + 4]
mov eax, edx
sar eax, 2
test eax, eax
jne 0x701317b1
mov eax, dword [esp + 0x10]
cmp byte [eax], 9
je 0x701317f4
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov esi, eax
xor eax, eax
cmp esi, edi
sete al
xor edx, edx
test edi, edi
sete dl
add edx, edx
or eax, edx
xor edx, edx
test esi, esi
sete dl
sub ecx, 1
shl edx, 2
or eax, edx
lea eax, [eax + eax*2]
lea edx, [eax + 0x707a52c0]
movzx eax, byte [eax + 0x707a52c0]
mov dword [esp + 0x3c], edx
imul ecx, eax
shr ecx, 8
test ebx, ebx
lea eax, [ecx + 1]
mov esi, eax
js 0x70131810
mov eax, dword [ebp + 0x3c48]
mov ecx, esi
shl ecx, 0x18
cmp eax, ecx
jb 0x701317c4
mov edx, dword [ebp + 0x3c50]
sub eax, ecx
sub edx, esi
movzx ecx, byte [edx + 0x707a4920]
movzx edi, cl
sub ebx, edi
mov edi, dword [esp + 0x3c]
shl edx, cl
shl eax, cl
test ebx, ebx
mov dword [ebp + 0x3c48], eax
mov dword [ebp + 0x3c4c], ebx
mov dword [ebp + 0x3c50], edx
movzx ecx, byte [edi + 1]
js 0x701318a6
sub edx, 1
movzx ecx, cl
imul edx, ecx
shr edx, 8
add edx, 1
mov ecx, edx
shl ecx, 0x18
cmp ecx, eax
ja 0x70131827
mov edi, dword [ebp + 0x3c50]
sub eax, ecx
sub edi, edx
mov edx, eax
movzx ecx, byte [edi + 0x707a4920]
movzx eax, cl
sub ebx, eax
mov eax, dword [esp + 0x3c]
shl edi, cl
shl edx, cl
mov dword [ebp + 0x3c50], edi
mov esi, edx
mov dword [esp + 0x34], edi
xor edi, edi
test ebx, ebx
mov dword [ebp + 0x3c48], edx
mov dword [ebp + 0x3c4c], ebx
movzx ecx, byte [eax + 2]
js 0x70131b7f
mov eax, dword [esp + 0x34]
movzx edx, cl
mov ecx, esi
sub eax, 1
imul eax, edx
shr eax, 8
lea edx, [eax + 1]
mov eax, edx
shl eax, 0x18
cmp eax, esi
ja 0x70131877
mov esi, dword [ebp + 0x3c50]
sub esi, edx
mov edx, ecx
movzx ecx, byte [esi + 0x707a4920]
sub edx, eax
mov eax, edx
movzx edx, cl
sub ebx, edx
mov edx, esi
shl eax, cl
shl edx, cl
mov dword [ebp + 0x3c48], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x3c50], edx
mov edx, dword [esp + 0x6c]
mov dword [ebp + 0x3c4c], ebx
call fcn.7012fc80
movzx esi, word [esp + 0x74]
mov edx, dword [esp + 0x70]
lea ebx, [esi + eax*2]
mov eax, dword [esp + 0x20]
mov di, bx
movzx edi, di
call fcn.7012fc80
movzx esi, word [esp + 0x76]
lea eax, [esi + eax*2]
mov edx, eax
shl edx, 0x10
or edi, edx
cwde
movsx ebx, bx
movzx ecx, byte [esp + 0x6a]
cmp dword [esp + 0x48], eax
mov esi, dword [esp + 0x18]
setl dl
cmp dword [esp + 0x4c], eax
setg al
or edx, eax
cmp dword [esp + 0x40], ebx
setg al
or edx, eax
cmp dword [esp + 0x44], ebx
setl al
or edx, eax
mov eax, dword [esp + 0x14]
or byte [esi + 0xa], dl
mov edx, dword [esp + 0x58]
imul eax, ecx
lea eax, [eax + edx + 0x707a52e0]
add ecx, eax
lea esi, [esi]
movzx edx, byte [eax]
add eax, 1
cmp eax, ecx
mov dword [esi + edx*4 + 0xc], edi
jne 0x70131750
add dword [esp + 0x14], 1
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
jge 0x70131859
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x14]
mov ecx, dword [ebp + 0x3c50]
mov ebx, dword [ebp + 0x3c4c]
movzx eax, byte [eax + edi + 0x707a54c0]
test al, 3
movzx edx, al
je 0x7013154a
mov eax, dword [esp + 0x18]
mov edi, dword [eax + edx*4 + 8]
mov eax, edx
sar eax, 2
test eax, eax
je 0x7013156d
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edx*4 - 4]
mov dword [esp + 0x34], eax
mov esi, eax
jmp 0x70131583
movzx ecx, byte [esi + 0x707a4920]
movzx edx, cl
sub ebx, edx
mov edx, esi
shl eax, cl
mov dword [ebp + 0x3c48], eax
shl edx, cl
mov eax, edi
mov dword [ebp + 0x3c4c], ebx
shr eax, 0x10
mov ebx, edi
mov dword [ebp + 0x3c50], edx
jmp 0x70131707
mov eax, dword [eax + edx*4 + 0x3c]
mov dword [esp + 0x34], eax
mov esi, eax
jmp 0x70131583
mov eax, dword [esp + 0x18]
mov edi, dword [eax + edx*4 - 0x34]
jmp 0x70131560
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov ebx, dword [ebp + 0x3c4c]
jmp 0x701315cb
movzx ecx, byte [edx + 0x707a4920]
movzx edi, cl
sub ebx, edi
mov edi, dword [esp + 0x34]
shl eax, cl
mov dword [ebp + 0x3c48], eax
shl edx, cl
mov dword [ebp + 0x3c4c], ebx
mov eax, edi
mov ebx, edi
mov dword [ebp + 0x3c50], edx
shr eax, 0x10
jmp 0x70131707
mov edi, dword [esp + 0x1c]
movzx eax, byte [esp + 0x6b]
mov byte [edi], 9
mov byte [edi + 8], al
mov eax, dword [edi + 0x48]
mov byte [edi + 3], 1
mov dword [edi + 4], eax
jmp 0x70130a49
movzx ecx, byte [edx + 0x707a4920]
mov edi, esi
movzx eax, cl
sub ebx, eax
xor eax, eax
shl edi, cl
shl edx, cl
mov dword [ebp + 0x3c48], edi
xor edi, edi
mov dword [ebp + 0x3c4c], ebx
xor ebx, ebx
mov dword [ebp + 0x3c50], edx
jmp 0x70131707
mov eax, dword [esp + 0x20]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ecx
mov dword [esp], eax
call fcn.7012faa0
mov eax, dword [ebp + 0x3c48]
mov ebx, dword [ebp + 0x3c4c]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
jmp 0x7013161a
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov eax, dword [ebp + 0x3c4c]
jmp 0x70130c66
mov dword [esp + 0x1c], edi
jmp 0x70130a8c
mov dword [esp + 0x10], 0
mov esi, 7
jmp 0x7013196a
mov eax, dword [ebp + 0x3c48]
mov edx, ebx
shl edx, 0x18
mov dword [esp + 0x14], 0
cmp eax, edx
jb 0x70131932
mov ecx, dword [ebp + 0x3c50]
sub eax, edx
mov edx, 1
sub ecx, ebx
mov ebx, ecx
mov ecx, esi
shl edx, cl
mov dword [esp + 0x14], edx
movzx ecx, byte [ebx + 0x707a4920]
sub esi, 1
movzx edx, cl
sub edi, edx
mov edx, dword [esp + 0x14]
shl ebx, cl
shl eax, cl
or dword [esp + 0x10], edx
cmp esi, 0xffffffff
mov dword [ebp + 0x3c48], eax
mov dword [ebp + 0x3c4c], edi
mov dword [ebp + 0x3c50], ebx
je 0x70131ac1
mov eax, ebx
lea ebx, [eax - 1]
shl ebx, 7
shr ebx, 8
add ebx, 1
test edi, edi
jns 0x70131902
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c4c]
jmp 0x70131902
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c4c]
mov edx, dword [ebp + 0x3c48]
jmp 0x70131315
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov eax, dword [ebp + 0x3c48]
mov edi, dword [ebp + 0x3c4c]
jmp 0x70130780
movzx ecx, byte [eax + 0x707a4920]
mov byte [esp + 0x6b], 2
mov dword [esp + 0x50], 4
movzx edx, cl
shl eax, cl
sub ebx, edx
shl esi, cl
mov ecx, eax
mov dword [ebp + 0x3c50], eax
mov eax, 2
mov dword [ebp + 0x3c48], esi
mov dword [ebp + 0x3c4c], ebx
jmp 0x7013150d
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov esi, dword [ebp + 0x3c48]
mov eax, dword [ebp + 0x3c4c]
jmp 0x701307e4
mov eax, ecx
mov esi, 7
mov dword [esp + 0x10], 0
jmp 0x70131a94
mov edx, ebx
shl edx, 0x18
cmp edx, eax
mov dword [esp + 0x14], 0
ja 0x70131a5e
mov ecx, dword [ebp + 0x3c50]
sub eax, edx
mov edx, 1
sub ecx, ebx
mov ebx, ecx
mov ecx, esi
shl edx, cl
mov dword [esp + 0x14], edx
movzx ecx, byte [ebx + 0x707a4920]
sub esi, 1
movzx edx, cl
sub edi, edx
mov edx, dword [esp + 0x14]
shl ebx, cl
shl eax, cl
or dword [esp + 0x10], edx
cmp esi, 0xffffffff
mov dword [ebp + 0x3c48], eax
mov dword [ebp + 0x3c4c], edi
mov dword [ebp + 0x3c50], ebx
je 0x70131b6d
sub ebx, 1
shl ebx, 7
shr ebx, 8
add ebx, 1
test edi, edi
jns 0x70131a34
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c4c]
mov eax, dword [ebp + 0x3c48]
jmp 0x70131a34
movzx edx, byte [esp + 0x10]
mov esi, 7
mov dword [esp + 0x10], 0
mov byte [ebp + 0x3d2c], dl
jmp 0x70131b40
mov edx, ebx
shl edx, 0x18
cmp edx, eax
mov dword [esp + 0x14], 0
ja 0x70131b0a
mov ecx, dword [ebp + 0x3c50]
sub eax, edx
mov edx, 1
sub ecx, ebx
mov ebx, ecx
mov ecx, esi
shl edx, cl
mov dword [esp + 0x14], edx
movzx ecx, byte [ebx + 0x707a4920]
sub esi, 1
movzx edx, cl
sub edi, edx
mov edx, dword [esp + 0x14]
shl ebx, cl
shl eax, cl
or dword [esp + 0x10], edx
cmp esi, 0xffffffff
mov dword [ebp + 0x3c48], eax
mov dword [ebp + 0x3c4c], edi
mov dword [ebp + 0x3c50], ebx
je 0x70131bc3
sub ebx, 1
shl ebx, 7
shr ebx, 8
add ebx, 1
test edi, edi
jns 0x70131ae0
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c4c]
mov eax, dword [ebp + 0x3c48]
jmp 0x70131ae0
movzx eax, byte [esp + 0x10]
mov byte [ebp + 0x3d2f], al
mov eax, ebx
jmp 0x7013015c
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
mov dword [esp], eax
call fcn.7012faa0
mov eax, dword [ebp + 0x3c48]
mov ebx, dword [ebp + 0x3c4c]
mov ecx, dword [esp + 0x3c]
mov esi, eax
jmp 0x7013167c
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c4c]
mov edx, dword [ebp + 0x3c48]
jmp 0x70130cbe
movzx edx, byte [esp + 0x10]
mov esi, 7
mov dword [esp + 0x10], 0
mov byte [ebp + 0x3d2d], dl
jmp 0x70131c3c
mov edx, ebx
shl edx, 0x18
cmp edx, eax
mov dword [esp + 0x14], 0
ja 0x70131c0a
mov ecx, dword [ebp + 0x3c50]
sub eax, edx
mov edx, 1
sub ecx, ebx
mov ebx, ecx
mov ecx, esi
shl edx, cl
mov dword [esp + 0x14], edx
movzx ecx, byte [ebx + 0x707a4920]
sub esi, 1
movzx edx, cl
sub edi, edx
mov edx, dword [esp + 0x14]
shl ebx, cl
shl eax, cl
or dword [esp + 0x10], edx
cmp esi, 0xffffffff
mov dword [ebp + 0x3c48], eax
mov dword [ebp + 0x3c4c], edi
mov dword [ebp + 0x3c50], ebx
je 0x70131c69
sub ebx, 1
shl ebx, 7
shr ebx, 8
add ebx, 1
test edi, edi
jns 0x70131be0
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c4c]
mov eax, dword [ebp + 0x3c48]
jmp 0x70131be0
sub ebx, 1
movzx edx, byte [esp + 0x10]
shl ebx, 7
shr ebx, 8
lea esi, [ebx + 1]
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, eax
test esi, esi
mov byte [ebp + 0x3d2e], dl
js 0x70132110
mov edx, dword [esp + 0x10]
mov eax, edx
shl eax, 0x18
cmp eax, edi
ja 0x701320e3
mov ebx, dword [ebp + 0x3c50]
sub edi, eax
mov eax, edi
mov dword [esp + 0x14], ebp
sub ebx, edx
movzx ecx, byte [ebx + 0x707a4920]
movzx edx, cl
shl eax, cl
sub esi, edx
shl ebx, cl
mov edx, esi
mov dword [ebp + 0x3c48], eax
lea eax, [ebp + 4]
mov dword [ebp + 0x3c4c], esi
mov dword [ebp + 0x3c50], ebx
mov dword [esp + 0x1c], eax
xor edi, edi
mov esi, 7
mov dword [esp + 0x18], edi
jmp 0x70131d4d
mov edi, dword [ebp + 0x3c48]
mov eax, ebx
shl eax, 0x18
mov dword [esp + 0x10], 0
cmp edi, eax
jb 0x70131d19
mov ecx, dword [ebp + 0x3c50]
sub edi, eax
mov eax, 1
sub ecx, ebx
mov ebx, ecx
mov ecx, esi
shl eax, cl
mov dword [esp + 0x10], eax
movzx ecx, byte [ebx + 0x707a4920]
sub esi, 1
movzx eax, cl
sub edx, eax
mov eax, dword [esp + 0x10]
shl ebx, cl
shl edi, cl
or dword [esp + 0x18], eax
cmp esi, 0xffffffff
mov ecx, edi
mov dword [ebp + 0x3c48], edi
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], ebx
je 0x70131d74
sub ebx, 1
shl ebx, 7
shr ebx, 8
add ebx, 1
test edx, edx
jns 0x70131ce9
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
jmp 0x70131ce9
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
add dword [esp + 0x14], 1
mov eax, edi
mov byte [esi + 0x2aa3], al
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x1c]
jne 0x70131cdc
mov dword [esp + 0x10], ecx
mov esi, edx
mov eax, ebx
lea edi, [eax - 1]
shl edi, 7
shr edi, 8
test esi, esi
lea ebx, [edi + 1]
js 0x701320c2
mov ecx, dword [esp + 0x10]
mov eax, ebx
shl eax, 0x18
cmp eax, ecx
ja 0x70132093
mov edx, dword [ebp + 0x3c50]
mov edi, ecx
sub edi, eax
mov eax, edi
mov dword [esp + 0x14], ebp
sub edx, ebx
movzx ecx, byte [edx + 0x707a4920]
mov edi, edx
movzx ebx, cl
shl eax, cl
sub esi, ebx
shl edi, cl
mov edx, esi
mov dword [ebp + 0x3c48], eax
lea eax, [ebp + 3]
mov ebx, edi
mov dword [ebp + 0x3c4c], esi
mov dword [ebp + 0x3c50], edi
mov dword [esp + 0x1c], eax
xor edi, edi
mov esi, 7
mov dword [esp + 0x18], edi
jmp 0x70131e74
mov edi, dword [ebp + 0x3c48]
mov eax, ebx
shl eax, 0x18
mov dword [esp + 0x10], 0
cmp edi, eax
jb 0x70131e42
mov ecx, dword [ebp + 0x3c50]
sub edi, eax
mov eax, 1
sub ecx, ebx
mov ebx, ecx
mov ecx, esi
shl eax, cl
mov dword [esp + 0x10], eax
movzx ecx, byte [ebx + 0x707a4920]
sub esi, 1
movzx eax, cl
sub edx, eax
mov eax, dword [esp + 0x10]
shl ebx, cl
shl edi, cl
or dword [esp + 0x18], eax
cmp esi, 0xffffffff
mov dword [ebp + 0x3c48], edi
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], ebx
je 0x70131e9b
sub ebx, 1
shl ebx, 7
shr ebx, 8
add ebx, 1
test edx, edx
jns 0x70131e12
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
jmp 0x70131e12
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
add dword [esp + 0x14], 1
mov eax, edi
mov byte [esi + 0x2aa7], al
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x1c]
jne 0x70131e05
mov edi, edx
mov eax, ebx
mov dword [esp + 0x24], 0
mov esi, dword [esp + 0x24]
mov dword [esp + 0x18], 0
lea edx, [esi*8]
add edx, esi
lea edx, [esi + edx*2]
lea esi, [edx + 0x707a4e80]
add edx, dword [esp + 0x6c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x18]
sub eax, 1
movzx esi, byte [esi + edx]
imul esi, eax
shr esi, 8
add esi, 1
test edi, edi
js 0x7013207c
mov eax, dword [ebp + 0x3c48]
mov edx, esi
shl edx, 0x18
cmp eax, edx
jb 0x70131fe9
mov ebx, dword [ebp + 0x3c50]
sub eax, edx
mov dword [esp + 0x14], 0
sub ebx, esi
movzx ecx, byte [ebx + 0x707a4920]
movzx edx, cl
sub edi, edx
shl ebx, cl
mov edx, edi
shl eax, cl
mov dword [ebp + 0x3c4c], edi
mov edi, 6
mov dword [ebp + 0x3c48], eax
mov dword [ebp + 0x3c50], ebx
jmp 0x70131fbc
mov ecx, ebx
shl ecx, 0x18
cmp ecx, eax
mov dword [esp + 0x10], 0
ja 0x70131f8a
mov esi, dword [ebp + 0x3c50]
sub eax, ecx
mov ecx, edi
sub esi, ebx
mov ebx, esi
mov esi, 1
shl esi, cl
mov dword [esp + 0x10], esi
movzx ecx, byte [ebx + 0x707a4920]
sub edi, 1
movzx esi, cl
sub edx, esi
mov esi, dword [esp + 0x10]
shl ebx, cl
shl eax, cl
or dword [esp + 0x14], esi
cmp edi, 0xffffffff
mov dword [ebp + 0x3c48], eax
mov dword [ebp + 0x3c4c], edx
mov dword [ebp + 0x3c50], ebx
je 0x7013202c
sub ebx, 1
shl ebx, 7
shr ebx, 8
add ebx, 1
test edx, edx
jns 0x70131f60
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
mov eax, dword [ebp + 0x3c48]
jmp 0x70131f60
movzx ecx, byte [esi + 0x707a4920]
add dword [esp + 0x18], 1
movzx edx, cl
shl eax, cl
sub edi, edx
shl esi, cl
cmp dword [esp + 0x18], 0x13
mov dword [ebp + 0x3c48], eax
mov dword [ebp + 0x3c4c], edi
mov dword [ebp + 0x3c50], esi
je 0x70132057
mov eax, dword [ebp + 0x3c50]
mov edi, dword [ebp + 0x3c4c]
mov esi, dword [esp + 0x1c]
jmp 0x70131ef4
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, edi
mov edx, edi
add eax, eax
mov edi, 1
test dl, dl
cmove eax, edi
mov edi, dword [esp + 0x28]
add dword [esp + 0x18], 1
cmp dword [esp + 0x18], 0x13
mov byte [edi + esi], al
jne 0x70132017
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x7013016a
mov eax, dword [ebp + 0x3c50]
mov edi, dword [ebp + 0x3c4c]
mov dword [esp + 0x24], 1
jmp 0x70131eca
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c4c]
jmp 0x70131f10
movzx ecx, byte [edi + 0x707a4921]
mov eax, ebx
mov edi, dword [esp + 0x10]
movzx edx, cl
sub esi, edx
shl edi, cl
shl eax, cl
mov dword [ebp + 0x3c48], edi
mov edi, esi
mov dword [ebp + 0x3c4c], esi
mov dword [ebp + 0x3c50], eax
jmp 0x70131ec2
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov eax, dword [ebp + 0x3c48]
mov esi, dword [ebp + 0x3c4c]
mov dword [esp + 0x10], eax
jmp 0x70131db3
movzx ecx, byte [ebx + 0x707a4921]
mov eax, edx
movzx edx, cl
shl edi, cl
sub esi, edx
shl eax, cl
mov dword [ebp + 0x3c48], edi
mov dword [ebp + 0x3c4c], esi
mov dword [ebp + 0x3c50], eax
mov dword [esp + 0x10], edi
jmp 0x70131d9f
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c48]
mov esi, dword [ebp + 0x3c4c]
jmp 0x70131c90
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov esi, dword [ebp + 0x3c48]
mov ebx, dword [ebp + 0x3c4c]
jmp 0x70130829
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edi, dword [ebp + 0x3c4c]
jmp 0x701300ff
mov byte [esp + 0x6b], 0
xor eax, eax
jmp 0x701308ae
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.7012faa0
mov edx, dword [ebp + 0x3c4c]
mov ebx, dword [ebp + 0x3c48]
jmp 0x7013088b