Function at 0xa140e0
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe8
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], esi
mov dword [ebp - 4], edi
test eax, eax
jne 0xa14110
mov dword [ebp - 0x60], 0xfffffffe
mov eax, dword [ebp - 0x60]
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
test edi, edi
je case.default.0xa14185
mov edx, dword [eax + 0xc]
test edx, edx
mov dword [ebp - 0x78], edx
je case.default.0xa14185
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x7c], ecx
je 0xa15178
mov eax, dword [edi]
cmp eax, 0xb
je 0xa1514b
mov esi, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 0x38]
mov ebx, dword [edi + 0x3c]
mov esi, dword [esi + 0x10]
mov edx, dword [edx + 4]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x74], edx
lea edx, [edi + 0x2f0]
mov dword [ebp - 0x68], esi
lea esi, [edi + 0x530]
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xa8], edx
cmp eax, 0x1c
ja case.default.0xa14185
jmp dword [eax*4 + 0xc050cc]
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0xf
jbe 0xa1418c
mov eax, dword [ebp - 0x6c]
cmp al, 8
mov dword [edi + 0x10], eax
je 0xa155e9
mov edx, dword [ebp + 8]
mov dword [edi], 0x1b
mov dword [edx + 0x18], 0xc04f37
mov eax, dword [edi]
jmp 0xa1417c
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0xd
jbe 0xa141d6
mov eax, dword [ebp - 0x6c]
sub ebx, 0xe
and eax, 0x1f
add eax, 0x101
mov dword [edi + 0x60], eax
mov eax, dword [ebp - 0x6c]
shr dword [ebp - 0x6c], 0xa
shr eax, 5
and eax, 0x1f
add eax, 1
mov dword [edi + 0x64], eax
mov eax, dword [ebp - 0x6c]
shr dword [ebp - 0x6c], 4
and eax, 0xf
add eax, 4
cmp dword [edi + 0x60], 0x11e
mov dword [edi + 0x5c], eax
ja 0xa1540a
cmp dword [edi + 0x64], 0x1e
ja 0xa1540a
mov dword [edi + 0x68], 0
mov dword [edi], 0x10
mov eax, dword [edi + 0x68]
cmp dword [edi + 0x5c], eax
mov dword [ebp - 0xbc], eax
lea esi, [eax + eax + 0xc05140]
jbe 0xa142c3
cmp ebx, 2
ja 0xa14295
mov edx, dword [ebp - 0x74]
test edx, edx
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x6c], eax
movzx eax, word [ebp - 0x6c]
sub ebx, 3
movzx edx, word [esi]
add esi, 2
add dword [ebp - 0xbc], 1
shr dword [ebp - 0x6c], 3
and eax, 7
mov word [edi + edx*2 + 0x70], ax
mov eax, dword [ebp - 0xbc]
cmp dword [edi + 0x5c], eax
mov dword [edi + 0x68], eax
ja 0xa1426b
cmp dword [ebp - 0xbc], 0x12
ja 0xa142fb
mov esi, dword [ebp - 0xbc]
lea edx, [esi + esi + 0xc05140]
movzx eax, word [edx]
add edx, 2
add dword [ebp - 0xbc], 1
mov word [edi + eax*2 + 0x70], 0
mov eax, dword [ebp - 0xbc]
cmp eax, 0x13
mov dword [edi + 0x68], eax
jne 0xa142d9
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xa8]
mov dword [edi + 0x54], 7
mov dword [edi + 0x6c], eax
mov dword [edi + 0x4c], eax
lea eax, [edi + 0x54]
mov dword [esp + 0x10], eax
lea eax, [edi + 0x6c]
mov dword [esp + 0xc], eax
lea eax, [edi + 0x70]
mov dword [esp + 0x14], edx
mov dword [esp + 8], 0x13
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.00a18fc0
test eax, eax
mov dword [ebp - 0x60], eax
je 0xa14cff
mov ecx, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [ecx + 0x18], 0xc04fe8
jmp 0xa1417c
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0x1f
jbe 0xa14363
mov eax, dword [ebp - 0x6c]
xor ebx, ebx
mov edx, dword [ebp - 0x6c]
mov esi, dword [ebp + 8]
mov dword [edi], 0xa
shr eax, 8
shr edx, 0x18
and eax, 0xff00
add eax, edx
mov edx, dword [ebp - 0x6c]
shl dword [ebp - 0x6c], 0x18
and edx, 0xff00
shl edx, 8
add eax, edx
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x6c], 0
mov dword [edi + 0x18], eax
mov dword [esi + 0x30], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0xa15893
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00a19f80
mov esi, dword [ebp + 8]
mov dword [edi], 0xb
mov dword [edi + 0x18], eax
mov dword [esi + 0x30], eax
cmp dword [ebp + 0xc], 5
jne case.0xa14185.12
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x7c]
mov dword [ecx + 0xc], esi
mov esi, dword [ebp - 0x74]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x6c]
mov dword [ecx], edx
mov dword [ecx + 4], esi
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x28]
mov dword [edi + 0x3c], ebx
test eax, eax
jne 0xa14442
cmp dword [edi], 0x17
ja 0xa14455
mov edx, dword [ebp - 0x68]
cmp dword [ecx + 0x10], edx
je 0xa14455
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
call fcn.00a13e30
test eax, eax
jne 0xa14c89
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 8]
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x68]
sub ebx, dword [ecx + 0x10]
sub esi, dword [ecx + 4]
add dword [ecx + 0x14], ebx
add dword [ecx + 8], esi
add dword [edi + 0x1c], ebx
test eax, eax
je 0xa144a4
test ebx, ebx
je 0xa144a4
mov eax, dword [edi + 0x10]
test eax, eax
je 0xa15158
mov edx, dword [edi + 0x18]
mov dword [esp + 8], ebx
mov eax, dword [ecx + 0xc]
mov dword [esp], edx
sub eax, ebx
mov dword [esp + 4], eax
call fcn.00a18870
mov edx, dword [ebp + 8]
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
cmp dword [edi + 4], 1
mov ecx, dword [ebp + 8]
sbb edx, edx
xor eax, eax
not edx
and edx, 0x40
cmp dword [edi], 0xb
setne al
add edx, dword [edi + 0x3c]
sub eax, 1
and eax, 0x80
add edx, eax
or ebx, esi
mov dword [ecx + 0x2c], edx
je 0xa144d8
cmp dword [ebp + 0xc], 4
jne 0xa14100
mov ebx, dword [ebp - 0x60]
test ebx, ebx
jne 0xa14100
mov dword [ebp - 0x60], 0xfffffffb
jmp 0xa14100
mov edx, dword [edi + 0x20]
test edx, edx
je 0xa14501
mov eax, dword [ebp - 0x6c]
shr eax, 8
and eax, 1
mov dword [edx], eax
test byte [edi + 0x11], 2
jne 0xa158c2
mov dword [edi], 2
xor ebx, ebx
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0x1f
jbe 0xa1451a
mov eax, dword [edi + 0x20]
test eax, eax
je 0xa1454f
mov edx, dword [ebp - 0x6c]
mov dword [eax + 4], edx
test byte [edi + 0x11], 2
jne 0xa154c1
mov dword [edi], 3
xor ebx, ebx
mov dword [ebp - 0x6c], 0
mov esi, dword [ebp - 0x74]
test esi, esi
je 0xa1440b
mov esi, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [esi]
add esi, 1
mov dword [ebp - 0x7c], esi
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0xf
jbe 0xa14568
mov edx, dword [edi + 0x20]
test edx, edx
je 0xa145a9
movzx eax, byte [ebp - 0x6c]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x6c]
shr eax, 8
mov dword [edx + 0xc], eax
test byte [edi + 0x11], 2
jne 0xa1548d
mov dword [edi], 4
xor ebx, ebx
mov dword [ebp - 0x6c], 0
test byte [edi + 0x11], 4
jne 0xa14840
mov eax, dword [edi + 0x20]
test eax, eax
je 0xa145da
mov dword [eax + 0x10], 0
mov dword [edi], 5
mov edx, dword [edi + 0x10]
test dh, 4
je 0xa1467c
mov eax, dword [edi + 0x40]
mov esi, dword [ebp - 0x74]
cmp esi, eax
jbe 0xa145f8
mov esi, eax
test esi, esi
je 0xa14674
mov ecx, dword [edi + 0x20]
test ecx, ecx
mov dword [ebp - 0xbc], ecx
je 0xa1465d
mov ecx, dword [ecx + 0x10]
test ecx, ecx
mov dword [ebp - 0x9c], ecx
je 0xa1465d
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx + 0x14]
sub edx, eax
mov eax, dword [ecx + 0x18]
mov ecx, esi
mov dword [ebp - 0x98], eax
lea eax, [esi + edx]
cmp eax, dword [ebp - 0x98]
jbe 0xa1463f
mov ecx, dword [ebp - 0x98]
sub ecx, edx
mov eax, dword [ebp - 0x9c]
mov dword [esp + 8], ecx
add eax, edx
mov edx, dword [ebp - 0x7c]
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0x10]
and dh, 2
jne 0xa155c0
mov eax, dword [edi + 0x40]
sub dword [ebp - 0x74], esi
add dword [ebp - 0x7c], esi
sub eax, esi
mov dword [edi + 0x40], eax
test eax, eax
jne 0xa1440b
mov dword [edi + 0x40], 0
mov dword [edi], 6
test byte [edi + 0x11], 8
je 0xa151a5
mov edx, dword [ebp - 0x74]
test edx, edx
je 0xa1440b
xor esi, esi
mov eax, dword [ebp - 0x7c]
mov edx, dword [edi + 0x20]
movzx eax, byte [esi + eax]
add esi, 1
test edx, edx
mov byte [ebp - 0x91], al
je 0xa146d6
mov ecx, dword [edx + 0x1c]
test ecx, ecx
je 0xa146d6
mov eax, dword [edi + 0x40]
cmp eax, dword [edx + 0x20]
jae 0xa146d6
movzx edx, byte [ebp - 0x91]
mov byte [ecx + eax], dl
add eax, 1
mov dword [edi + 0x40], eax
cmp byte [ebp - 0x91], 0
jne 0xa15139
test byte [edi + 0x11], 2
jne 0xa153de
sub dword [ebp - 0x74], esi
add dword [ebp - 0x7c], esi
cmp byte [ebp - 0x91], 0
jne 0xa1440b
mov dword [edi + 0x40], 0
mov dword [edi], 7
test byte [edi + 0x11], 0x10
je 0xa15188
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
xor esi, esi
mov eax, dword [ebp - 0x7c]
mov edx, dword [edi + 0x20]
movzx eax, byte [esi + eax]
add esi, 1
test edx, edx
mov byte [ebp - 0x2d], al
je 0xa14754
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0xa14754
mov eax, dword [edi + 0x40]
cmp eax, dword [edx + 0x28]
jae 0xa14754
movzx edx, byte [ebp - 0x2d]
mov byte [ecx + eax], dl
add eax, 1
mov dword [edi + 0x40], eax
cmp byte [ebp - 0x2d], 0
jne 0xa1512b
test byte [edi + 0x11], 2
jne 0xa153b3
sub dword [ebp - 0x74], esi
add dword [ebp - 0x7c], esi
cmp byte [ebp - 0x2d], 0
jne 0xa1440b
mov dword [edi], 8
mov edx, dword [edi + 0x10]
test dh, 2
jne 0xa147f4
mov eax, dword [edi + 0x20]
test eax, eax
je 0xa1479d
sar edx, 9
and edx, 1
mov dword [eax + 0x2c], edx
mov dword [eax + 0x30], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00a18870
mov edx, dword [ebp + 8]
mov dword [edi], 0xb
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
mov eax, dword [edi]
jmp 0xa1417c
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov esi, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [esi]
add esi, 1
mov dword [ebp - 0x7c], esi
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0xf
jbe 0xa147cf
movzx eax, word [edi + 0x18]
cmp eax, dword [ebp - 0x6c]
je 0xa153fc
mov esi, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [esi + 0x18], 0xc04f7f
jmp 0xa1417c
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0xf
jbe 0xa1481d
mov eax, dword [ebp - 0x6c]
mov dword [edi + 0x40], eax
mov eax, dword [edi + 0x20]
test eax, eax
je 0xa14858
mov edx, dword [ebp - 0x6c]
mov dword [eax + 0x14], edx
test byte [edi + 0x11], 2
je 0xa1488d
movzx ecx, byte [ebp - 0x6c]
shr dword [ebp - 0x6c], 8
movzx eax, byte [ebp - 0x6c]
mov dword [esp + 8], 2
mov byte [ebp - 0x1c], cl
mov byte [ebp - 0x1b], al
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00a18870
mov dword [edi + 0x18], eax
xor ebx, ebx
mov dword [ebp - 0x6c], 0
jmp 0xa145da
mov eax, dword [edi + 4]
test eax, eax
jne 0xa151bc
cmp ebx, 2
ja 0xa148d0
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
and eax, 1
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x6c]
shr eax, 1
mov esi, eax
and esi, 3
cmp esi, 1
je 0xa15599
jae 0xa1544a
mov dword [edi], 0xd
shr eax, 2
sub ebx, 3
mov dword [ebp - 0x6c], eax
mov eax, dword [edi]
jmp 0xa1417c
and esi, 0xf
mov dword [edi + 0x48], esi
mov dword [edi], 0x13
mov esi, dword [edi + 0x48]
test esi, esi
je 0xa1495f
cmp ebx, esi
jae 0xa14948
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x6c], eax
cmp esi, ebx
ja 0xa1491f
mov ecx, esi
mov eax, 1
shl eax, cl
sub ebx, esi
sub eax, 1
and eax, dword [ebp - 0x6c]
shr dword [ebp - 0x6c], cl
add dword [edi + 0x40], eax
mov dword [edi], 0x14
mov ecx, dword [edi + 0x58]
mov eax, 1
mov esi, dword [edi + 0x50]
shl eax, cl
mov dword [ebp - 0x80], esi
lea esi, [eax - 1]
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x80]
and eax, esi
lea eax, [edx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3e], cx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
mov byte [ebp - 0xb8], al
movzx eax, dl
cmp ebx, eax
jae 0xa149eb
mov edx, dword [ebp - 0x74]
test edx, edx
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x80]
shl eax, cl
add dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
and eax, esi
lea eax, [edx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3e], cx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
mov byte [ebp - 0xb8], al
movzx eax, dl
cmp eax, ebx
ja 0xa1499f
movzx esi, byte [ebp - 0xb8]
mov dword [ebp - 0x34], esi
movzx esi, dl
test byte [ebp - 0x34], 0xf0
jne 0xa14acd
movzx eax, word [ebp - 0x3e]
movzx ecx, dl
mov dword [ebp - 0x48], ecx
mov esi, dword [ebp - 0x80]
add ecx, dword [ebp - 0x34]
mov dword [ebp - 0x44], eax
mov eax, 1
shl eax, cl
movzx ecx, byte [ebp - 0x48]
sub eax, 1
mov dword [ebp - 0x4c], eax
and eax, dword [ebp - 0x6c]
shr eax, cl
add eax, dword [ebp - 0x44]
lea eax, [esi + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3e], cx
movzx ecx, byte [eax + 1]
mov byte [ebp - 0x4e], cl
movzx eax, byte [eax]
movzx esi, cl
mov byte [ebp - 0xb8], al
mov eax, dword [ebp - 0x48]
add eax, esi
cmp ebx, eax
jae 0xa14ab3
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov esi, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [esi]
add esi, 1
mov dword [ebp - 0x7c], esi
mov esi, dword [ebp - 0x80]
shl eax, cl
movzx ecx, byte [ebp - 0x48]
add dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x4c]
shr eax, cl
add eax, dword [ebp - 0x44]
lea eax, [esi + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3e], cx
movzx ecx, byte [eax + 1]
mov byte [ebp - 0x4e], cl
movzx eax, byte [eax]
movzx esi, cl
mov byte [ebp - 0xb8], al
mov eax, dword [ebp - 0x48]
add eax, esi
cmp eax, ebx
ja 0xa14a55
movzx eax, dl
movzx ecx, byte [ebp - 0x48]
sub ebx, eax
movzx eax, byte [ebp - 0xb8]
shr dword [ebp - 0x6c], cl
movzx edx, byte [ebp - 0x4e]
mov dword [ebp - 0x34], eax
movzx eax, dl
mov ecx, esi
sub ebx, eax
shr dword [ebp - 0x6c], cl
test byte [ebp - 0x34], 0x40
je 0xa14bfb
mov esi, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [esi + 0x18], 0xc05069
jmp 0xa1417c
mov eax, dword [edi + 8]
test eax, eax
jne 0xa14f93
mov dword [edi], 0x19
mov eax, dword [edi + 8]
test eax, eax
je 0xa14e6a
mov eax, dword [edi + 0x10]
test eax, eax
jne 0xa14b45
jmp 0xa14e6a
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0x1f
jbe 0xa14b20
mov eax, dword [ebp - 0x6c]
cmp dword [edi + 0x1c], eax
je 0xa14e61
mov edx, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [edx + 0x18], 0xc050b2
jmp 0xa1417c
mov dword [edi], 0x16
mov eax, dword [ebp - 0x70]
test eax, eax
je 0xa1440b
mov edx, dword [ebp - 0x68]
mov eax, dword [edi + 0x44]
sub edx, dword [ebp - 0x70]
cmp edx, eax
jae 0xa1511c
sub eax, edx
mov edx, eax
mov eax, dword [edi + 0x30]
cmp edx, eax
jbe 0xa15421
mov esi, dword [edi + 0x28]
sub edx, eax
sub esi, edx
add esi, dword [edi + 0x34]
mov eax, dword [edi + 0x40]
cmp edx, eax
ja 0xa15124
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x64], edx
cmp edx, ecx
jbe 0xa14bc2
mov dword [ebp - 0x64], ecx
mov edx, ecx
sub dword [ebp - 0x70], edx
sub eax, edx
mov ecx, dword [ebp - 0x78]
mov dword [edi + 0x40], eax
movzx eax, byte [esi]
add esi, 1
mov byte [ecx], al
add ecx, 1
sub edx, 1
jne 0xa14bcd
mov esi, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x64]
mov eax, dword [edi + 0x40]
lea esi, [ecx + esi]
test eax, eax
mov dword [ebp - 0x78], esi
je 0xa1510f
mov eax, dword [edi]
jmp 0xa1417c
movzx eax, word [ebp - 0x3e]
mov dword [edi], 0x15
mov dword [edi + 0x44], eax
movzx eax, byte [ebp - 0xb8]
and eax, 0xf
mov dword [edi + 0x48], eax
mov esi, dword [edi + 0x48]
test esi, esi
je 0xa14c60
cmp ebx, esi
jae 0xa14c49
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x6c], eax
cmp esi, ebx
ja 0xa14c20
mov ecx, esi
mov eax, 1
shl eax, cl
sub ebx, esi
sub eax, 1
and eax, dword [ebp - 0x6c]
shr dword [ebp - 0x6c], cl
add dword [edi + 0x44], eax
mov eax, dword [ebp - 0x68]
add eax, dword [edi + 0x2c]
sub eax, dword [ebp - 0x70]
cmp dword [edi + 0x44], eax
jbe 0xa14b6d
mov esi, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [esi + 0x18], 0xc0507f
jmp 0xa1417c
mov dword [edi], 0x1c
mov dword [ebp - 0x60], 0xfffffffc
jmp 0xa14100
mov dword [edi + 0x40], edx
xor ebx, ebx
mov dword [edi], 0xe
mov dword [ebp - 0x6c], 0
mov eax, dword [edi + 0x40]
test eax, eax
je 0xa153d1
mov edx, dword [ebp - 0x70]
cmp edx, eax
jbe 0xa14cc1
mov edx, eax
cmp edx, dword [ebp - 0x74]
mov esi, edx
jbe 0xa14ccb
mov esi, dword [ebp - 0x74]
test esi, esi
je 0xa1440b
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [edi]
sub dword [ebp - 0x74], esi
add dword [ebp - 0x7c], esi
sub dword [ebp - 0x70], esi
add dword [ebp - 0x78], esi
sub dword [edi + 0x40], esi
jmp 0xa1417c
mov dword [edi + 0x68], 0
mov dword [edi], 0x11
mov eax, dword [edi + 0x64]
mov edx, dword [edi + 0x60]
mov esi, dword [edi + 0x68]
add eax, edx
mov dword [ebp - 0xa0], eax
mov eax, esi
mov dword [ebp - 0x5c], esi
cmp dword [ebp - 0xa0], eax
jbe 0xa15717
mov ecx, dword [edi + 0x54]
mov eax, 1
mov edx, dword [edi + 0x4c]
shl eax, cl
sub eax, 1
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x58]
mov dword [ebp - 0x54], edx
lea eax, [edx + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx esi, cl
cmp ebx, esi
jae 0xa14d9a
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
mov esi, dword [ebp - 0x54]
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x58]
lea eax, [esi + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx esi, cl
cmp esi, ebx
ja 0xa14d5c
cmp dx, 0xf
jbe 0xa1542d
cmp dx, 0x10
je 0xa15522
cmp dx, 0x11
je 0xa15698
movzx ecx, cl
mov edx, ecx
add edx, 7
cmp ebx, edx
mov dword [ebp - 0xbc], ecx
jae 0xa14df1
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, edx
jb 0xa14dca
mov eax, dword [ebp - 0x6c]
movzx ecx, byte [ebp - 0xbc]
shr eax, cl
mov ecx, ebx
mov edx, eax
sub ecx, esi
and edx, 0x7f
shr eax, 7
add edx, 0xb
lea ebx, [ecx - 7]
xor ecx, ecx
mov dword [ebp - 0x6c], eax
mov esi, dword [ebp - 0x5c]
lea eax, [edx + esi]
cmp dword [ebp - 0xa0], eax
jb 0xa157e5
mov eax, dword [edi + 0x68]
mov word [ebp - 0xbe], cx
movzx esi, word [ebp - 0xbe]
mov word [edi + eax*2 + 0x70], cx
add eax, 1
mov ecx, 1
mov dword [edi + 0x68], eax
add ecx, 1
mov word [edi + eax*2 + 0x70], si
add eax, 1
cmp ecx, edx
mov dword [ebp - 0x5c], eax
mov dword [edi + 0x68], eax
jne 0xa14e47
jmp 0xa14d22
mov dword [ebp - 0x6c], 0
xor ebx, ebx
mov dword [edi], 0x1a
mov dword [ebp - 0x60], 1
jmp 0xa1440b
mov dword [edi], 0x12
cmp dword [ebp - 0x74], 5
jbe 0xa151d4
cmp dword [ebp - 0x70], 0x101
jbe 0xa151d4
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x7c]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x74]
mov dword [esi + 0x10], edx
mov edx, dword [ebp - 0x6c]
mov dword [esi], ecx
mov ecx, dword [ebp - 0x68]
mov dword [esi + 4], eax
mov dword [edi + 0x38], edx
mov dword [edi + 0x3c], ebx
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.00a19a20
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov esi, dword [esi + 0xc]
mov eax, dword [eax + 0x10]
mov edx, dword [edx]
mov ecx, dword [ecx + 4]
mov ebx, dword [edi + 0x3c]
mov dword [ebp - 0x70], eax
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x6c], eax
mov eax, dword [edi]
jmp 0xa1417c
mov dword [ebp - 0x60], 0xfffffffd
jmp 0xa1440b
mov ecx, ebx
and ebx, 0xfffffff8
and ecx, 7
shr dword [ebp - 0x6c], cl
cmp ebx, 0x1f
ja 0xa14f41
mov esi, dword [ebp - 0x74]
test esi, esi
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0x1f
jbe 0xa14f17
mov eax, dword [ebp - 0x6c]
movzx edx, word [ebp - 0x6c]
shr eax, 0x10
xor eax, 0xffff
cmp edx, eax
je 0xa14c9b
mov esi, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [esi + 0x18], 0xc04fa6
jmp 0xa1417c
mov esi, dword [ebp - 0x74]
test esi, esi
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0x1f
jbe 0xa14f70
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x70]
add dword [esi + 0x14], eax
add dword [edi + 0x1c], eax
test eax, eax
je 0xa14fd7
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0xa1560d
mov ecx, dword [ebp - 0x78]
mov edx, dword [edi + 0x18]
mov dword [esp + 8], eax
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00a18870
mov edx, dword [ebp + 8]
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
mov edx, dword [edi + 0x10]
mov eax, dword [ebp - 0x6c]
test edx, edx
jne 0xa15007
mov edx, eax
shr edx, 8
shr eax, 0x18
and edx, 0xff00
add edx, eax
mov eax, dword [ebp - 0x6c]
and eax, 0xff00
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x6c]
shl eax, 0x18
lea eax, [edx + eax]
cmp eax, dword [edi + 0x18]
je 0xa15703
mov ecx, dword [ebp + 8]
mov dword [edi], 0x1b
mov esi, dword [ebp - 0x70]
mov eax, dword [edi]
mov dword [ecx + 0x18], 0xc0509d
mov dword [ebp - 0x68], esi
jmp 0xa1417c
mov edx, dword [edi + 8]
test edx, edx
jne 0xa15064
mov dword [edi], 0xc
mov eax, dword [edi]
jmp 0xa1417c
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, 0xf
jbe 0xa15041
and edx, 2
je 0xa1507b
cmp dword [ebp - 0x6c], 0x8b1f
je 0xa1563e
mov eax, dword [edi + 0x20]
mov dword [edi + 0x10], 0
test eax, eax
je 0xa15090
mov dword [eax + 0x30], 0xffffffff
test byte [edi + 8], 1
je 0xa1550b
movzx ecx, byte [ebp - 0x6c]
mov edx, 0x8421085
mov eax, dword [ebp - 0x6c]
shl ecx, 8
shr eax, 8
add ecx, eax
mov eax, ecx
mul edx
mov eax, ecx
sub eax, edx
shr eax, 1
add edx, eax
shr edx, 4
mov eax, edx
shl eax, 5
sub eax, edx
cmp ecx, eax
jne 0xa1550b
mov eax, dword [ebp - 0x6c]
and eax, 0xf
cmp eax, 8
je 0xa157fc
mov ecx, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [ecx + 0x18], 0xc04f37
jmp 0xa1417c
mov eax, dword [ebp - 0x70]
test eax, eax
je 0xa1440b
mov edx, dword [ebp - 0x78]
mov eax, dword [edi + 0x40]
mov byte [edx], al
add edx, 1
sub dword [ebp - 0x70], 1
mov dword [ebp - 0x78], edx
mov dword [edi], 0x12
mov eax, dword [edi]
jmp 0xa1417c
mov esi, dword [ebp - 0x78]
sub esi, eax
mov eax, dword [edi + 0x40]
mov edx, eax
jmp 0xa14bb3
cmp esi, dword [ebp - 0x74]
jb 0xa14724
jmp 0xa1475e
cmp esi, dword [ebp - 0x74]
lea esi, [esi]
jb 0xa146a0
jmp 0xa146e3
mov al, 0xc
mov dword [edi], 0xc
jmp 0xa1413c
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 0x18]
mov dword [esp + 8], ebx
mov eax, dword [ecx + 0xc]
mov dword [esp], edx
sub eax, ebx
mov dword [esp + 4], eax
call fcn.00a19f80
jmp 0xa1449b
mov eax, dword [eax + 4]
test eax, eax
je 0xa14131
jmp case.default.0xa14185
mov eax, dword [edi + 0x20]
test eax, eax
lea esi, [esi]
je 0xa14778
mov dword [eax + 0x24], 0
lea esi, [esi]
jmp 0xa14778
mov eax, dword [edi + 0x20]
test eax, eax
je 0xa14700
mov dword [eax + 0x1c], 0
jmp 0xa14700
mov ecx, ebx
and ebx, 0xfffffff8
and ecx, 7
mov dword [edi], 0x18
mov eax, dword [edi]
shr dword [ebp - 0x6c], cl
jmp 0xa1417c
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x54]
mov dword [ebp - 0x90], eax
mov eax, 1
mov edx, dword [ebp - 0x90]
shl eax, cl
sub eax, 1
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0xbc]
lea eax, [edx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3c], cx
movzx edx, byte [eax + 1]
movzx esi, byte [eax]
movzx eax, dl
cmp ebx, eax
jae 0xa15265
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
mov esi, dword [ebp - 0x90]
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0xbc]
lea eax, [esi + eax*4]
movzx edx, word [eax + 2]
mov word [ebp - 0x3c], dx
movzx edx, byte [eax + 1]
movzx esi, byte [eax]
movzx eax, dl
cmp eax, ebx
ja 0xa15218
mov ecx, esi
test cl, cl
je 0xa15471
movzx eax, cl
test al, 0xf0
mov dword [ebp - 0x38], eax
jne 0xa1562a
movzx ecx, word [ebp - 0x3c]
movzx esi, dl
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x8c], ecx
mov ecx, esi
add ecx, eax
mov eax, 1
shl eax, cl
mov ecx, esi
mov esi, dword [ebp - 0x90]
sub eax, 1
mov dword [ebp - 0x84], eax
and eax, dword [ebp - 0x6c]
shr eax, cl
add eax, dword [ebp - 0x8c]
lea eax, [esi + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3a], cx
movzx ecx, byte [eax + 1]
mov byte [ebp - 0x4d], cl
movzx esi, byte [eax]
movzx eax, cl
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0xbc]
cmp ebx, eax
jae 0xa15354
mov esi, dword [ebp - 0x74]
test esi, esi
je 0xa1440b
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
mov esi, dword [ebp - 0x90]
movzx eax, byte [ecx]
mov ecx, ebx
add ebx, 8
add dword [ebp - 0x7c], 1
shl eax, cl
movzx ecx, byte [ebp - 0x88]
add dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x84]
shr eax, cl
add eax, dword [ebp - 0x8c]
lea eax, [esi + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3a], cx
movzx ecx, byte [eax + 1]
mov byte [ebp - 0x4d], cl
movzx esi, byte [eax]
movzx eax, cl
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0xbc]
cmp eax, ebx
ja 0xa152e5
movzx eax, dl
movzx ecx, byte [ebp - 0x88]
sub ebx, eax
movzx eax, byte [ebp - 0x4d]
shr dword [ebp - 0x6c], cl
movzx ecx, byte [ebp - 0xbc]
shr dword [ebp - 0x6c], cl
sub ebx, eax
movzx eax, word [ebp - 0x3a]
mov dword [edi + 0x40], eax
mov eax, esi
test al, al
je 0xa15480
mov edx, esi
movzx edx, dl
mov dword [ebp - 0x38], edx
test byte [ebp - 0x38], 0x20
jne 0xa153d1
test byte [ebp - 0x38], 0x40
je 0xa14908
mov ecx, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [ecx + 0x18], 0xc0504d
jmp 0xa1417c
mov ecx, dword [ebp - 0x7c]
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00a18870
mov dword [edi + 0x18], eax
jmp 0xa14768
mov dword [edi], 0xb
mov eax, dword [edi]
jmp 0xa1417c
mov ecx, dword [ebp - 0x7c]
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00a18870
mov dword [edi + 0x18], eax
jmp 0xa146ed
xor ebx, ebx
mov dword [ebp - 0x6c], 0
jmp 0xa14786
mov esi, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [esi + 0x18], 0xc04fc4
jmp 0xa1417c
mov esi, eax
sub esi, edx
add esi, dword [edi + 0x34]
jmp 0xa14ba8
sub ebx, esi
mov esi, dword [ebp - 0x5c]
shr dword [ebp - 0x6c], cl
mov word [edi + esi*2 + 0x70], dx
add esi, 1
mov eax, esi
mov dword [ebp - 0x5c], esi
mov dword [edi + 0x68], esi
jmp 0xa14d22
cmp esi, 2
je 0xa155de
cmp esi, 3
jne 0xa148f8
mov esi, dword [ebp + 8]
mov dword [edi], 0x1b
mov dword [esi + 0x18], 0xc04f93
jmp 0xa148f8
movzx eax, word [ebp - 0x3c]
movzx ecx, dl
shr dword [ebp - 0x6c], cl
sub ebx, ecx
mov dword [edi + 0x40], eax
mov dword [edi], 0x17
mov eax, dword [edi]
jmp 0xa1417c
movzx eax, byte [ebp - 0x6c]
shr dword [ebp - 0x6c], 8
movzx edx, byte [ebp - 0x6c]
mov dword [esp + 8], 2
mov byte [ebp - 0x1c], al
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov byte [ebp - 0x1b], dl
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00a18870
mov dword [edi + 0x18], eax
jmp 0xa145b3
movzx ecx, byte [ebp - 0x6c]
shr dword [ebp - 0x6c], 8
movzx eax, byte [ebp - 0x6c]
shr dword [ebp - 0x6c], 8
movzx edx, byte [ebp - 0x6c]
shr dword [ebp - 0x6c], 8
mov byte [ebp - 0x1c], cl
movzx ecx, byte [ebp - 0x6c]
mov byte [ebp - 0x1b], al
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x1a], dl
mov dword [esp + 8], 4
mov byte [ebp - 0x19], cl
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00a18870
mov dword [edi + 0x18], eax
jmp 0xa14559
mov edx, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [edx + 0x18], 0xc04f20
jmp 0xa1417c
movzx ecx, cl
mov dword [ebp - 0xbc], ecx
add ecx, 2
cmp ebx, ecx
mov dword [ebp - 0xc4], ecx
jae 0xa15565
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, dword [ebp - 0xc4]
jb 0xa15538
mov eax, dword [ebp - 0x5c]
sub ebx, esi
movzx ecx, byte [ebp - 0xbc]
shr dword [ebp - 0x6c], cl
test eax, eax
je 0xa1587c
mov eax, dword [ebp - 0x5c]
sub ebx, 2
movzx ecx, word [edi + eax*2 + 0x6e]
mov eax, dword [ebp - 0x6c]
shr dword [ebp - 0x6c], 2
and eax, 3
lea edx, [eax + 3]
jmp 0xa14e14
mov dword [edi + 0x4c], 0xc05200
mov dword [edi + 0x54], 9
mov dword [edi + 0x50], 0xc05180
mov dword [edi + 0x58], 5
mov dword [edi], 0x12
jmp 0xa148f8
mov ecx, dword [ebp - 0x7c]
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00a18870
mov dword [edi + 0x18], eax
jmp 0xa14666
mov dword [edi], 0xf
jmp 0xa148f8
test word [ebp - 0x6c], 0xe000
nop
je 0xa144ef
mov ecx, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [ecx + 0x18], 0xc04f66
jmp 0xa1417c
mov esi, dword [ebp - 0x78]
mov edx, dword [edi + 0x18]
mov dword [esp + 8], eax
sub esi, eax
mov dword [esp + 4], esi
mov dword [esp], edx
call fcn.00a19f80
jmp 0xa14fce
movzx ecx, dl
movzx eax, word [ebp - 0x3c]
shr dword [ebp - 0x6c], cl
sub ebx, ecx
mov dword [edi + 0x40], eax
jmp 0xa1538c
mov dword [esp + 8], 0
xor ebx, ebx
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00a18870
mov dword [edi + 0x18], eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x1c], 0x1f
mov byte [ebp - 0x1b], 0x8b
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00a18870
mov dword [edi], 1
mov dword [ebp - 0x6c], 0
mov dword [edi + 0x18], eax
mov eax, dword [edi]
jmp 0xa1417c
movzx ecx, cl
mov dword [ebp - 0xbc], ecx
add ecx, 3
cmp ebx, ecx
mov dword [ebp - 0xc4], ecx
jae 0xa156db
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xa1440b
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
add ebx, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x6c], eax
cmp ebx, dword [ebp - 0xc4]
jb 0xa156ae
mov eax, dword [ebp - 0x6c]
movzx ecx, byte [ebp - 0xbc]
shr eax, cl
mov ecx, ebx
mov edx, eax
sub ecx, esi
and edx, 7
shr eax, 3
add edx, 3
lea ebx, [ecx - 3]
xor ecx, ecx
mov dword [ebp - 0x6c], eax
jmp 0xa14e14
mov eax, dword [ebp - 0x70]
xor ebx, ebx
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], eax
jmp 0xa14b03
cmp dword [edi], 0x1b
je 0xa141d2
mov ecx, dword [ebp - 0xa4]
lea esi, [edi + 0x6c]
mov eax, dword [ebp - 0xa8]
mov dword [edi + 0x54], 9
mov dword [edi + 0x6c], ecx
mov dword [edi + 0x4c], ecx
mov dword [esp + 0x14], eax
lea eax, [edi + 0x54]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov eax, dword [edi + 0x60]
mov dword [esp], 1
mov dword [esp + 8], eax
lea eax, [edi + 0x70]
mov dword [esp + 4], eax
call fcn.00a18fc0
test eax, eax
mov dword [ebp - 0x60], eax
je 0xa15783
mov edx, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [edx + 0x18], 0xc0501b
jmp 0xa1417c
mov eax, dword [edi + 0x6c]
mov ecx, dword [ebp - 0xa8]
mov dword [edi + 0x58], 6
mov dword [edi + 0x50], eax
lea eax, [edi + 0x58]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov eax, dword [edi + 0x64]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x60]
mov dword [esp], 2
lea eax, [edi + eax*2 + 0x70]
mov dword [esp + 4], eax
call fcn.00a18fc0
test eax, eax
mov dword [ebp - 0x60], eax
je 0xa14e7c
mov esi, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [esi + 0x18], 0xc05037
jmp 0xa1417c
mov eax, dword [ebp + 8]
mov dword [edi], 0x1b
mov dword [eax + 0x18], 0xc05001
mov eax, dword [edi]
jmp 0xa1417c
shr dword [ebp - 0x6c], 4
mov eax, dword [ebp - 0x6c]
and eax, 0xf
lea ecx, [eax + 8]
cmp ecx, dword [edi + 0x24]
jbe 0xa15828
mov esi, dword [ebp + 8]
sub ebx, 4
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [esi + 0x18], 0xc04f52
jmp 0xa1417c
mov eax, 1
shl eax, cl
mov dword [edi + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00a19f80
mov edx, dword [ebp + 8]
and dword [ebp - 0x6c], 0x200
cmp dword [ebp - 0x6c], 1
mov dword [ebp - 0x6c], 0
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
sbb eax, eax
xor ebx, ebx
and eax, 2
add eax, 9
mov dword [edi], eax
mov eax, dword [edi]
jmp 0xa1417c
mov esi, dword [ebp + 8]
mov dword [edi], 0x1b
mov eax, dword [edi]
mov dword [esi + 0x18], 0xc05001
jmp 0xa1417c
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x7c]
mov dword [ebp - 0x60], 2
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x74]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x6c]
mov dword [eax], esi
mov dword [eax + 4], edx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], ebx
jmp 0xa14100
movzx eax, byte [ebp - 0x6c]
shr dword [ebp - 0x6c], 8
movzx edx, byte [ebp - 0x6c]
mov dword [esp + 8], 2
mov byte [ebp - 0x1c], al
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov byte [ebp - 0x1b], dl
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00a18870
mov dword [edi + 0x18], eax
jmp 0xa1450b