Function at 0xa1d988
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1dc
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x130]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
add eax, 0x7d14
mov dword [ebp - 0x1c], eax
mov ecx, dword [edx + 0x7cbc]
test ecx, ecx
je 0xa1df8e
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x118]
mov ebx, edx
shl ebx, 4
add ebx, ecx
mov ecx, dword [ebx*4 + 0xd79a20]
imul eax, edx, 0x11940
mov ebx, dword [ebp + 8]
add eax, 0x11940
imul eax, ecx
cdq
idiv dword [ebx + 0xc]
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebx + 0xcebc]
mov esi, dword [edx + 0x5178]
add eax, ecx
shl eax, 3
cmp esi, 7
mov dword [ebp - 0x20], eax
jg 0xa1e019
cmp esi, 0x1f
jg 0xa1e098
test esi, esi
jle 0xa1dbb3
mov eax, dword [ebp - 0x14]
lea ebx, [esi - 1]
mov edi, ebx
and edi, 3
mov edx, dword [eax + 0x1308c]
mov dword [esp], 1
call fcn.00a1cf58
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x60]
test eax, eax
sete cl
movzx edx, cl
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x1308c]
xor edx, eax
test ebx, ebx
mov dword [ecx + 0x1308c], edx
jle 0xa1dbb3
test edi, edi
je 0xa1db01
cmp edi, 1
je 0xa1dacc
cmp edi, 2
je 0xa1da9d
mov dword [esp], 1
mov eax, ecx
call fcn.00a1cf58
mov ecx, dword [ebp + 8]
xor edx, edx
mov edi, dword [ebp - 0x14]
cmp dword [ecx + 0x60], 0
mov ebx, dword [edi + 0x1308c]
sete dl
xor edx, ebx
lea ebx, [esi - 2]
mov dword [edi + 0x1308c], edx
mov dword [esp], 1
mov eax, dword [ebp - 0x14]
call fcn.00a1cf58
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
mov edi, dword [edx + 0x60]
mov esi, dword [eax + 0x1308c]
test edi, edi
sete cl
movzx edx, cl
dec ebx
xor edx, esi
mov dword [eax + 0x1308c], edx
mov dword [esp], 1
mov eax, dword [ebp - 0x14]
call fcn.00a1cf58
mov ecx, dword [ebp + 8]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp dword [ecx + 0x60], 0
mov esi, dword [eax + 0x1308c]
sete dl
dec ebx
xor edx, esi
test ebx, ebx
mov dword [eax + 0x1308c], edx
jle 0xa1dbb3
mov dword [esp], 1
mov eax, dword [ebp - 0x14]
call fcn.00a1cf58
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x14]
mov esi, dword [edx + 0x60]
mov eax, dword [edi + 0x1308c]
test esi, esi
sete cl
movzx edx, cl
xor edx, eax
mov eax, edi
mov dword [edi + 0x1308c], edx
mov dword [esp], 1
call fcn.00a1cf58
mov esi, dword [ebp + 8]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp dword [esi + 0x60], 0
mov ecx, dword [eax + 0x1308c]
sete dl
xor edx, ecx
mov dword [eax + 0x1308c], edx
mov dword [esp], 1
call fcn.00a1cf58
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp dword [esi + 0x60], 0
mov edi, dword [ecx + 0x1308c]
mov eax, ecx
sete dl
xor edx, edi
mov dword [ecx + 0x1308c], edx
mov dword [esp], 1
call fcn.00a1cf58
mov edi, dword [ebp - 0x14]
xor edx, edx
cmp dword [esi + 0x60], 0
mov eax, dword [edi + 0x1308c]
sete dl
sub ebx, 4
xor edx, eax
test ebx, ebx
mov dword [edi + 0x1308c], edx
jg 0xa1db01
mov edi, dword [ebp + 8]
xor ecx, ecx
mov esi, dword [edi + 0x130]
mov edx, dword [esi + 0x13084]
lea ebx, [esi + 0x7d14]
mov dword [ebp - 0x24], ebx
lea eax, [edx + edx*2]
shl eax, 4
mov dword [eax + esi + 0x10088], ecx
mov edi, dword [esi + 0x13084]
mov edx, dword [esi + 0xdc00]
lea eax, [edi + edi*2]
shl eax, 4
add eax, esi
cmp edx, 7
lea edi, [eax + 0x1008c]
jbe 0xa1dc12
test edi, 4
je 0xa1dc12
xor ecx, ecx
lea edi, [eax + 0x10090]
sub edx, 4
mov dword [eax + 0x1008c], ecx
cld
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
mov eax, edi
je 0xa1dc2b
mov word [edi], 0
add eax, 2
test dl, 1
je 0xa1dc33
mov byte [eax], 0
mov edx, dword [ebp + 8]
cmp dword [edx + 0xc], 0x3e7f
jg 0xa1e008
mov dword [esp], 0xc
mov edx, 0xffe
mov eax, esi
call fcn.00a1d048
mov edi, dword [ebp + 8]
mov eax, esi
mov edx, dword [edi + 0x118]
mov dword [esp], 1
call fcn.00a1d048
mov dword [esp], 2
mov edx, 1
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x54]
mov dword [esp], 1
test ebx, ebx
sete al
movzx edx, al
mov eax, esi
call fcn.00a1d048
mov edx, dword [esi + 0x7cbc]
mov eax, esi
mov dword [esp], 4
call fcn.00a1d048
mov edx, dword [esi + 0x7cc0]
mov eax, esi
mov dword [esp], 2
call fcn.00a1d048
mov edx, dword [esi + 0xcebc]
mov eax, esi
mov dword [esp], 1
call fcn.00a1d048
mov ecx, dword [ebp + 8]
mov eax, esi
mov edx, dword [ecx + 0x58]
mov dword [esp], 1
call fcn.00a1d048
mov edi, dword [ebp + 8]
mov eax, esi
mov edx, dword [edi + 0x2c]
mov dword [esp], 2
call fcn.00a1d048
mov edx, dword [esi + 0x7cc4]
mov eax, esi
mov dword [esp], 2
call fcn.00a1d048
mov edx, dword [edi + 0x4c]
mov eax, esi
mov dword [esp], 1
call fcn.00a1d048
mov edx, dword [edi + 0x50]
mov eax, esi
mov dword [esp], 1
call fcn.00a1d048
mov edx, dword [edi + 0xf0]
mov eax, esi
mov dword [esp], 2
call fcn.00a1d048
mov ebx, dword [edi + 0x54]
test ebx, ebx
jne 0xa1e3b3
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x118], 1
je 0xa1e0d4
mov ecx, dword [ebp - 0x24]
mov eax, esi
mov edx, dword [ecx + 0x5170]
mov dword [esp], 8
call fcn.00a1d048
mov eax, dword [ebp - 0x24]
mov edi, dword [esi + 0x7ca4]
mov edx, dword [eax + 0x5174]
mov dword [esp], edi
mov eax, esi
xor edi, edi
call fcn.00a1d048
mov ebx, dword [esi + 0x7ca4]
test ebx, ebx
jle 0xa1e3de
mov ebx, dword [ebp - 0x24]
jmp 0xa1de77
mov dword [esp], 1
xor edx, edx
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12bc]
cmp edx, 0xe
je 0xa1dfc9
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12c0]
cmp edx, 0xe
je 0xa1dfb4
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12c4]
cmp edx, 0xe
je 0xa1df9f
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12d8]
mov eax, esi
mov dword [esp], 4
call fcn.00a1d048
mov edx, dword [ebx + 0x12dc]
mov dword [esp], 3
mov eax, esi
inc edi
call fcn.00a1d048
mov edx, dword [ebx + 0x12e4]
mov eax, esi
mov dword [esp], 1
call fcn.00a1d048
mov edx, dword [ebx + 0x12e8]
mov eax, esi
add ebx, 0x145c
mov dword [esp], 1
call fcn.00a1d048
cmp dword [esi + 0x7ca4], edi
jle 0xa1e3de
mov ecx, dword [ebx + 0x12a0]
mov eax, esi
mov edx, dword [ebx + 0x12ec]
mov dword [esp], 0xc
add edx, ecx
call fcn.00a1d048
mov edx, dword [ebx + 0x12a4]
mov dword [esp], 9
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12ac]
mov eax, esi
mov dword [esp], 8
call fcn.00a1d048
mov edx, dword [ebx + 0x12b0]
mov eax, esi
mov dword [esp], 9
call fcn.00a1d048
mov edx, dword [ebx + 0x12b4]
test edx, edx
je 0xa1ddad
mov dword [esp], 1
mov edx, 1
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12b4]
mov eax, esi
mov dword [esp], 2
call fcn.00a1d048
mov edx, dword [ebx + 0x12b8]
mov eax, esi
mov dword [esp], 1
call fcn.00a1d048
mov edx, dword [ebx + 0x12bc]
cmp edx, 0xe
je 0xa1dff3
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12c0]
cmp edx, 0xe
je 0xa1dfde
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12c8]
mov eax, esi
mov dword [esp], 3
call fcn.00a1d048
mov edx, dword [ebx + 0x12cc]
mov eax, esi
mov dword [esp], 3
call fcn.00a1d048
mov edx, dword [ebx + 0x12d0]
jmp 0xa1de2e
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x118]
jmp 0xa1d9d0
mov eax, 0x10
mov edx, 0x10
mov dword [ebx + 0x12c4], eax
jmp 0xa1de06
mov edx, 0x10
mov dword [ebx + 0x12c0], edx
mov edx, 0x10
jmp 0xa1dde9
mov ecx, 0x10
mov edx, 0x10
mov dword [ebx + 0x12bc], ecx
jmp 0xa1ddcc
mov eax, 0x10
mov edx, 0x10
mov dword [ebx + 0x12c0], eax
jmp 0xa1df4d
mov edx, 0x10
mov dword [ebx + 0x12bc], edx
mov edx, 0x10
jmp 0xa1df30
mov dword [esp], 0xc
mov edx, 0xfff
jmp 0xa1dc4f
mov dword [esp], 8
mov edx, 0x4c
mov eax, ebx
sub esi, 8
call fcn.00a1cf58
cmp esi, 7
jle 0xa1da08
mov dword [esp], 8
mov edx, 0x41
mov eax, ebx
sub esi, 8
call fcn.00a1cf58
cmp esi, 7
jle 0xa1da08
mov dword [esp], 8
mov edx, 0x4d
mov eax, ebx
sub esi, 8
call fcn.00a1cf58
cmp esi, 7
jle 0xa1da08
mov dword [esp], 8
mov edx, 0x45
mov eax, ebx
call fcn.00a1cf58
sub esi, 8
jmp 0xa1da08
call fcn.00a23308
mov edi, eax
xor ebx, ebx
jmp 0xa1e0c3
cmp esi, 7
jle 0xa1da11
movsx edx, byte [ebx + edi]
mov dword [esp], 8
mov eax, dword [ebp - 0x14]
sub esi, 8
inc ebx
call fcn.00a1cf58
mov dword [esp], edi
call fcn.00a5b888
cmp eax, ebx
jg 0xa1e0a3
jmp 0xa1da11
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0x5170]
mov eax, esi
mov dword [esp], 9
call fcn.00a1d048
cmp dword [esi + 0x7ca4], 2
je 0xa20699
mov edi, dword [ebp - 0x24]
mov edx, dword [edi + 0x5174]
mov dword [esp], 5
mov eax, esi
xor edi, edi
call fcn.00a1d048
mov eax, dword [esi + 0x7ca4]
cmp eax, 0
jmp 0xa1e18c
mov eax, dword [ebp - 0x24]
lea ebx, [edi*4]
mov edx, dword [eax + ebx*4 + 0x5180]
mov dword [esp], 1
mov eax, esi
call fcn.00a1d048
mov ecx, dword [ebp - 0x24]
mov eax, esi
mov edx, dword [ecx + ebx*4 + 0x5184]
mov dword [esp], 1
call fcn.00a1d048
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + ebx*4 + 0x5188]
mov eax, esi
mov dword [esp], 1
call fcn.00a1d048
mov ecx, dword [ebp - 0x24]
mov eax, esi
mov edx, dword [ecx + ebx*4 + 0x518c]
mov dword [esp], 1
call fcn.00a1d048
inc edi
mov eax, dword [esi + 0x7ca4]
cmp eax, edi
jg 0xa1e11c
xor edi, edi
mov edx, 1
mov dword [ebp - 0x188], edi
mov dword [ebp - 0x190], edx
xor edi, edi
cmp eax, 0
jle 0xa1e3c8
mov ebx, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x24]
add ebx, ecx
jmp 0xa1e29c
mov dword [esp], 1
xor edx, edx
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12bc]
cmp edx, 0xe
je 0xa1fb67
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12c0]
cmp edx, 0xe
je 0xa1fb52
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12c4]
cmp edx, 0xe
je 0xa1fb3d
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12d8]
mov eax, esi
mov dword [esp], 4
call fcn.00a1d048
mov edx, dword [ebx + 0x12dc]
mov dword [esp], 3
mov eax, esi
inc edi
call fcn.00a1d048
mov edx, dword [ebx + 0x12e0]
mov eax, esi
mov dword [esp], 1
call fcn.00a1d048
mov edx, dword [ebx + 0x12e4]
mov eax, esi
mov dword [esp], 1
call fcn.00a1d048
mov edx, dword [ebx + 0x12e8]
mov eax, esi
add ebx, 0x145c
mov dword [esp], 1
call fcn.00a1d048
mov eax, dword [esi + 0x7ca4]
cmp eax, edi
jle 0xa1e3c8
mov eax, dword [ebx + 0x12a0]
mov edx, dword [ebx + 0x12ec]
mov dword [esp], 0xc
add edx, eax
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12a4]
mov eax, esi
mov dword [esp], 9
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sar edx, 1
call fcn.00a1d048
mov edx, dword [ebx + 0x12ac]
mov eax, esi
mov dword [esp], 8
call fcn.00a1d048
mov edx, dword [ebx + 0x12b0]
mov eax, esi
mov dword [esp], 4
call fcn.00a1d048
mov eax, dword [ebx + 0x12b4]
test eax, eax
je 0xa1e1bc
mov dword [esp], 1
mov edx, 1
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12b4]
mov eax, esi
mov dword [esp], 2
call fcn.00a1d048
mov edx, dword [ebx + 0x12b8]
mov eax, esi
mov dword [esp], 1
call fcn.00a1d048
mov edx, dword [ebx + 0x12bc]
cmp edx, 0xe
je 0xa1fb28
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12c0]
cmp edx, 0xe
je 0xa1fb13
mov dword [esp], 5
mov eax, esi
call fcn.00a1d048
mov edx, dword [ebx + 0x12c8]
mov eax, esi
mov dword [esp], 3
call fcn.00a1d048
mov edx, dword [ebx + 0x12cc]
mov eax, esi
mov dword [esp], 3
call fcn.00a1d048
mov edx, dword [ebx + 0x12d0]
jmp 0xa1e23d
mov dword [esp], 0x10
xor edx, edx
mov eax, esi
call fcn.00a1d048
jmp 0xa1dd55
add dword [ebp - 0x188], 0x28b8
dec dword [ebp - 0x190]
jns 0xa1e1a1
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x54]
test ebx, ebx
je 0xa1e654
mov edi, dword [esi + 0x13084]
lea ecx, [edi + edi*2]
shl ecx, 4
lea edx, [ecx + esi + 0x1008c]
mov dword [ebp - 0x28], edx
movzx ecx, byte [edx + 2]
mov edx, 0x1fffe
mov ebx, ecx
shr ebx, 7
test ebx, ebx
jne 0xa1e419
mov edx, 0x17ffb
mov eax, ecx
add edx, edx
shl eax, 0xa
xor eax, edx
test eax, 0x10000
je 0xa1e42f
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xb
xor eax, edx
test eax, 0x10000
je 0xa1e445
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xc
xor eax, edx
test eax, 0x10000
je 0xa1e45b
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xd
xor eax, edx
test eax, 0x10000
je 0xa1e471
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xe
xor eax, edx
test eax, 0x10000
je 0xa1e487
xor edx, 0x8005
add edx, edx
shl ecx, 0xf
mov eax, edx
xor eax, ecx
test eax, 0x10000
je 0xa1e49d
xor edx, 0x8005
add edx, edx
lea eax, [ecx + ecx]
xor eax, edx
test eax, 0x10000
je 0xa1e4b1
xor edx, 0x8005
mov edi, dword [ebp - 0x28]
add edx, edx
movzx ecx, byte [edi + 3]
mov eax, ecx
shl eax, 9
xor eax, edx
test eax, 0x10000
je 0xa1e4ce
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xa
xor eax, edx
test eax, 0x10000
je 0xa1e4e4
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xb
xor eax, edx
test eax, 0x10000
je 0xa1e4fa
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xc
xor eax, edx
test eax, 0x10000
je 0xa1e510
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xd
xor eax, edx
test eax, 0x10000
je 0xa1e526
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xe
xor eax, edx
test eax, 0x10000
je 0xa1e53c
xor edx, 0x8005
add edx, edx
shl ecx, 0xf
mov eax, edx
xor eax, ecx
test eax, 0x10000
je 0xa1e552
xor edx, 0x8005
add edx, edx
lea eax, [ecx + ecx]
xor eax, edx
test eax, 0x10000
je 0xa1e566
xor edx, 0x8005
mov edi, dword [esi + 0xdc00]
mov ebx, 6
cmp edi, 6
jle 0xa1e646
lea esi, [esi]
lea edi, [edi]
mov eax, dword [ebp - 0x28]
add edx, edx
movzx ecx, byte [ebx + eax]
mov eax, ecx
shl eax, 9
xor eax, edx
test eax, 0x10000
je 0xa1e5a5
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xa
xor eax, edx
test eax, 0x10000
je 0xa1e5bb
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xb
xor eax, edx
test eax, 0x10000
je 0xa1e5d1
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xc
xor eax, edx
test eax, 0x10000
je 0xa1e5e7
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xd
xor eax, edx
test eax, 0x10000
je 0xa1e5fd
xor edx, 0x8005
mov eax, ecx
add edx, edx
shl eax, 0xe
xor eax, edx
test eax, 0x10000
je 0xa1e613
xor edx, 0x8005
add edx, edx
shl ecx, 0xf
mov eax, edx
xor eax, ecx
test eax, 0x10000
je 0xa1e629
xor edx, 0x8005
add edx, edx
lea eax, [ecx + ecx]
xor eax, edx
test eax, 0x10000
je 0xa1e63d
xor edx, 0x8005
inc ebx
cmp edi, ebx
jg 0xa1e588
mov ecx, dword [ebp - 0x28]
mov ebx, edx
sar ebx, 8
mov byte [ecx + 4], bl
mov byte [ecx + 5], dl
mov ecx, dword [esi + 0x13084]
mov ebx, dword [ebp - 0x20]
lea eax, [ecx + 1]
and eax, 0xff
lea edx, [ecx + ecx*2]
shl edx, 4
mov dword [esi + 0x13084], eax
lea edi, [eax + eax*2]
mov ecx, dword [edx + esi + 0x10084]
shl edi, 4
add ecx, ebx
mov dword [edi + esi + 0x10084], ecx
mov edx, dword [esi + 0x13088]
cmp dword [esi + 0x13084], edx
je 0xa20683
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 8]
mov ecx, dword [eax + 0xdc00]
mov ebx, dword [edx + 0x130]
shl ecx, 3
mov dword [ebp - 0x180], ebx
add ebx, 0x7d14
cmp dword [esi + 0x118], 1
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x40], ebx
je 0xa1fb7c
mov edi, dword [ebp - 0x180]
xor esi, esi
mov dword [ebp - 0x1ac], esi
mov edx, dword [edi + 0x7ca4]
test edx, edx
jle 0xa1ee01
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x184], ebx
mov ecx, dword [ebp - 0x184]
xor edx, edx
xor eax, eax
mov dword [ebp - 0xd4], edx
xor edi, edi
mov dword [ebp - 0xd0], eax
cmp dword [ecx + 0x12b4], 2
je 0xa1f530
lea esi, [esi]
mov edx, dword [ebp - 0x184]
mov ebx, dword [ebp - 0xd0]
mov esi, dword [edx + 0x1444]
mov eax, dword [esi + ebx*4]
mov esi, dword [edx + ebx*4 + 0x1448]
test eax, eax
mov dword [ebp - 0x114], eax
jg 0xa1f15f
inc dword [ebp - 0xd0]
cmp dword [ebp - 0xd0], 3
jle 0xa1e728
mov esi, dword [ebp - 0x184]
mov ebx, dword [ebp - 0x184]
mov edx, dword [ebp - 0x180]
mov eax, dword [esi + 0x12d8]
mov edi, dword [esi + 0x12dc]
mov ecx, dword [ebp - 0x180]
inc eax
mov ebx, dword [ebx + 0x12a4]
mov edx, dword [edx + eax*4 + 0x13098]
add eax, edi
mov edi, dword [ecx + eax*4 + 0x1309c]
cmp edx, ebx
mov dword [ebp - 0x1a4], ebx
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x120], edi
jle 0xa1e7b8
mov dword [ebp - 0x11c], ebx
mov ebx, dword [ebp - 0x1a4]
cmp dword [ebp - 0x120], ebx
jle 0xa1e7cc
mov dword [ebp - 0x120], ebx
mov esi, dword [ebp - 0x184]
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x128], eax
mov edi, dword [esi + 0x12bc]
mov edx, edi
mov dword [ebp - 0x124], edi
shl edx, 4
add edx, 0xd79f60
mov dword [ebp - 0x12c], edx
test edi, edi
je 0xa1e958
mov ebx, dword [ebp - 0x11c]
xor edi, edi
cmp dword [ebp - 0x134], ebx
mov dword [ebp - 0x130], edi
jge 0xa1e94c
xor esi, esi
mov ecx, dword [ebp - 0x130]
xor edx, edx
mov dword [ebp - 0x138], esi
mov esi, dword [ebp - 0x184]
xor edi, edi
mov dword [ebp - 0x1b0], edx
mov eax, dword [ebp - 0x12c]
mov edx, dword [esi + ecx*4 + 0x900]
mov ebx, dword [eax]
mov eax, ecx
test edx, edx
mov ecx, dword [esi + ecx*4 + 0x904]
je 0xa1e879
fld dword [esi + eax*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa1e86e
mov edi, 1
mov esi, 0xffffffff
mov dword [ebp - 0x138], esi
cmp dword [ebp - 0x124], 0xf
jle 0xa1e8b6
cmp edx, 0xe
jle 0xa1e898
mov dword [ebp - 0x1b0], ebx
lea eax, [edx + edx - 0x1e]
or edi, eax
mov edx, 0xf
cmp ecx, 0xe
jle 0xa1e8b1
add dword [ebp - 0x1b0], ebx
lea esi, [ecx - 0xf]
mov cl, bl
shl edi, cl
or edi, esi
mov ecx, 0xf
mov ebx, 0x10
test ecx, ecx
je 0xa1e8de
mov eax, dword [ebp - 0x184]
add edi, edi
mov esi, dword [ebp - 0x130]
fld dword [eax + esi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc edi, 0
dec dword [ebp - 0x138]
imul edx, ebx
mov esi, dword [ebp - 0x1b0]
mov ebx, dword [ebp - 0x138]
add edx, ecx
mov ecx, dword [ebp - 0x12c]
sub esi, ebx
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0x138]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, edi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x130], 2
add dword [ebp - 0x134], ebx
mov ebx, dword [ebp - 0x11c]
cmp dword [ebp - 0x130], ebx
jl 0xa1e821
mov edi, dword [ebp - 0x134]
mov dword [ebp - 0x128], edi
mov eax, dword [ebp - 0x184]
xor esi, esi
mov dword [ebp - 0x144], esi
mov ecx, dword [eax + 0x12c0]
xor eax, eax
mov dword [ebp - 0x13c], ecx
mov edx, dword [ebp - 0x13c]
shl ecx, 4
add ecx, 0xd79f60
mov dword [ebp - 0x140], ecx
test edx, edx
je 0xa1eace
mov edi, dword [ebp - 0x11c]
cmp edi, dword [ebp - 0x120]
jge 0xa1eac8
mov ecx, dword [ebp - 0x184]
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x140]
xor esi, esi
mov dword [ebp - 0x148], ebx
mov edx, dword [ecx + edi*4 + 0x900]
mov ebx, dword [eax]
mov eax, ecx
test edx, edx
mov ecx, dword [ecx + edi*4 + 0x904]
je 0xa1e9fb
fld dword [eax + edi*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa1e9f0
mov eax, 1
mov dword [ebp - 0x14c], eax
mov eax, 0xffffffff
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x13c], 0xf
jle 0xa1ea3c
cmp edx, 0xe
jle 0xa1ea1a
lea esi, [edx + edx - 0x1e]
mov edx, 0xf
or dword [ebp - 0x14c], esi
mov esi, ebx
cmp ecx, 0xe
jle 0xa1ea37
lea eax, [ecx - 0xf]
mov cl, bl
add esi, ebx
shl dword [ebp - 0x14c], cl
mov ecx, 0xf
or dword [ebp - 0x14c], eax
mov ebx, 0x10
test ecx, ecx
je 0xa1ea66
shl dword [ebp - 0x14c], 1
mov eax, dword [ebp - 0x184]
fld dword [eax + edi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc dword [ebp - 0x14c], 0
dec dword [ebp - 0x148]
imul edx, ebx
mov ebx, dword [ebp - 0x148]
add edi, 2
sub esi, ebx
add edx, ecx
mov ecx, dword [ebp - 0x140]
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0x148]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x144], ebx
cmp edi, dword [ebp - 0x120]
jl 0xa1e9a3
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x184]
xor edx, edx
mov ebx, dword [ebp - 0x128]
mov dword [ebp - 0x158], edx
mov edi, dword [ecx + 0x12c4]
add eax, ebx
mov dword [ebp - 0x118], eax
mov esi, edi
xor eax, eax
mov dword [ebp - 0x150], edi
shl esi, 4
add esi, 0xd79f60
mov dword [ebp - 0x154], esi
test edi, edi
je 0xa1ec4e
mov edi, dword [ebp - 0x120]
cmp edi, dword [ebp - 0x1a4]
jge 0xa1ec48
mov ecx, dword [ebp - 0x184]
xor esi, esi
xor eax, eax
mov dword [ebp - 0x15c], esi
mov edx, dword [ebp - 0x154]
xor esi, esi
mov dword [ebp - 0x160], eax
mov ebx, dword [edx]
mov eax, ecx
mov edx, dword [ecx + edi*4 + 0x900]
mov ecx, dword [ecx + edi*4 + 0x904]
test edx, edx
je 0xa1eb7b
fld dword [eax + edi*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa1eb70
mov eax, 1
mov dword [ebp - 0x160], eax
mov eax, 0xffffffff
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x150], 0xf
jle 0xa1ebbc
cmp edx, 0xe
jle 0xa1eb9a
lea esi, [edx + edx - 0x1e]
mov edx, 0xf
or dword [ebp - 0x160], esi
mov esi, ebx
cmp ecx, 0xe
jle 0xa1ebb7
lea eax, [ecx - 0xf]
mov cl, bl
add esi, ebx
shl dword [ebp - 0x160], cl
mov ecx, 0xf
or dword [ebp - 0x160], eax
mov ebx, 0x10
test ecx, ecx
je 0xa1ebe6
shl dword [ebp - 0x160], 1
mov eax, dword [ebp - 0x184]
fld dword [eax + edi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc dword [ebp - 0x160], 0
dec dword [ebp - 0x15c]
imul edx, ebx
mov ebx, dword [ebp - 0x15c]
add edi, 2
sub esi, ebx
add edx, ecx
mov ecx, dword [ebp - 0x154]
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0x15c]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x158], ebx
cmp edi, dword [ebp - 0x1a4]
jl 0xa1eb23
mov eax, dword [ebp - 0x158]
mov edx, dword [ebp - 0x184]
mov esi, dword [ebp - 0x118]
mov edi, dword [edx + 0x12a4]
add eax, esi
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x174], edi
mov edi, dword [ebp - 0x184]
xor edx, edx
mov ebx, dword [ebp - 0x174]
mov dword [ebp - 0x16c], edx
mov ecx, dword [ebp - 0x184]
mov esi, dword [edi + 0x12e8]
lea eax, [edi + ebx*4]
mov edi, eax
shl esi, 4
add esi, 0xd7a160
mov dword [ebp - 0x164], esi
lea esi, [eax + 0x900]
mov eax, dword [ecx + 0x12a8]
sub eax, ebx
js 0xa1fb0b
sar eax, 2
test eax, eax
mov dword [ebp - 0x168], eax
jle 0xa1edb1
mov ecx, dword [ebp - 0x164]
mov ebx, dword [ecx + 0xc]
mov dword [ebp - 0x170], ebx
nop
mov eax, dword [esi]
xor ecx, ecx
xor ebx, ebx
test eax, eax
je 0xa1ed08
fld dword [edi]
mov ebx, 8
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa1ed08
mov ecx, 1
jmp 0xa1ed08
mov edx, dword [esi + 4]
test edx, edx
je 0xa1ed23
fld dword [edi + 4]
add ecx, ecx
add ebx, 4
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc ecx, 0
mov edx, dword [esi + 8]
test edx, edx
je 0xa1ed3e
fld dword [edi + 8]
add ecx, ecx
add ebx, 2
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc ecx, 0
mov edx, dword [esi + 0xc]
test edx, edx
je 0xa1ed57
fld dword [edi + 0xc]
add ecx, ecx
inc ebx
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc ecx, 0
mov edx, dword [ebp - 0x164]
add esi, 0x10
add edi, 0x10
mov eax, dword [edx + 8]
movsx edx, word [eax + ebx*2]
add edx, ecx
mov ecx, dword [ebp - 0x170]
movsx eax, byte [ebx + ecx]
mov dword [esp], eax
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov eax, dword [ebp - 0x164]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x170], edx
movsx ecx, byte [ebx + edx]
dec dword [ebp - 0x168]
add dword [ebp - 0x16c], ecx
mov ebx, dword [ebp - 0x168]
test ebx, ebx
jg 0xa1ecd8
inc dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x184], 0x145c
mov ecx, dword [ebp - 0xd4]
mov esi, dword [ebp - 0x180]
add ebx, eax
mov edi, dword [ebp - 0x1ac]
add ebx, ecx
add dword [ebp - 0x3c], ebx
cmp dword [esi + 0x7ca4], edi
jg 0xa1e6fc
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x130]
mov dword [ebp - 0x180], edx
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x1c]
add esi, ecx
mov dword [ebp - 0x18], esi
mov esi, dword [ebx + 0x517c]
cmp esi, 7
jg 0xa202a3
cmp esi, 0x1f
jg 0xa20634
test esi, esi
jle 0xa1efed
mov eax, dword [ebp - 0x180]
lea ebx, [esi - 1]
mov edi, ebx
and edi, 3
mov edx, dword [eax + 0x1308c]
mov dword [esp], 1
call fcn.00a1cf58
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x60]
test eax, eax
sete cl
movzx edx, cl
mov ecx, dword [ebp - 0x180]
mov eax, dword [ecx + 0x1308c]
xor edx, eax
test ebx, ebx
mov dword [ecx + 0x1308c], edx
jle 0xa1efed
test edi, edi
je 0xa1ef2c
cmp edi, 1
je 0xa1eef1
cmp edi, 2
je 0xa1eebc
mov dword [esp], 1
mov eax, ecx
call fcn.00a1cf58
mov ecx, dword [ebp + 8]
xor edx, edx
mov ebx, dword [ebp - 0x180]
cmp dword [ecx + 0x60], 0
mov edi, dword [ebx + 0x1308c]
sete dl
xor edx, edi
mov dword [ebx + 0x1308c], edx
lea ebx, [esi - 2]
mov dword [esp], 1
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x180]
mov edi, dword [edx + 0x60]
mov esi, dword [eax + 0x1308c]
test edi, edi
sete cl
movzx edx, cl
dec ebx
xor edx, esi
mov dword [eax + 0x1308c], edx
mov dword [esp], 1
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov ecx, dword [ebp + 8]
xor edx, edx
mov eax, dword [ebp - 0x180]
cmp dword [ecx + 0x60], 0
mov esi, dword [eax + 0x1308c]
sete dl
dec ebx
xor edx, esi
test ebx, ebx
mov dword [eax + 0x1308c], edx
jle 0xa1efed
mov dword [esp], 1
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x180]
mov edi, dword [edx + 0x60]
mov esi, dword [ecx + 0x1308c]
test edi, edi
sete al
movzx edx, al
xor edx, esi
mov eax, ecx
mov dword [ecx + 0x1308c], edx
mov dword [esp], 1
call fcn.00a1cf58
mov esi, dword [ebp + 8]
xor edx, edx
mov eax, dword [ebp - 0x180]
cmp dword [esi + 0x60], 0
mov edi, dword [eax + 0x1308c]
sete dl
xor edx, edi
mov dword [eax + 0x1308c], edx
mov dword [esp], 1
call fcn.00a1cf58
mov ecx, dword [ebp - 0x180]
xor edx, edx
cmp dword [esi + 0x60], 0
mov eax, dword [ecx + 0x1308c]
sete dl
xor edx, eax
mov eax, ecx
mov dword [ecx + 0x1308c], edx
mov dword [esp], 1
call fcn.00a1cf58
mov eax, dword [ebp - 0x180]
xor edx, edx
cmp dword [esi + 0x60], 0
mov edi, dword [eax + 0x1308c]
sete dl
sub ebx, 4
xor edx, edi
test ebx, ebx
mov dword [eax + 0x1308c], edx
jg 0xa1ef2c
mov edx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov eax, dword [edx + 0x517c]
add ebx, eax
mov eax, dword [ebp - 0x20]
sub eax, ebx
js 0xa20673
mov ecx, dword [ebp - 0x1c]
sar eax, 3
lea esi, [ebp - 0x10]
add dword [ecx + 0x5170], eax
mov dword [esp + 4], esi
mov edi, dword [ebp + 8]
mov dword [esp], edi
call fcn.00a1d358
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x13090]
cmp eax, edx
je 0xa1f04b
mov dword [esp], ecx
mov edx, 0xd7c050
mov dword [esp + 4], edx
call fcn.00a19868
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x13090]
mov esi, dword [ebp - 0x1c]
mov edi, dword [esi + 0x5170]
shl edi, 3
cmp edi, edx
je 0xa1f13b
mov ecx, dword [ebp - 0x20]
test ebx, ebx
mov eax, ebx
mov dword [esp + 0x28], ecx
js 0xa2067b
mov dword [esp + 0x20], ebx
and eax, 0xfffffff8
mov edx, ebx
sub edx, eax
mov dword [esp + 0x24], edx
mov edi, dword [ebp - 0x1c]
mov esi, dword [edi + 0x517c]
sub ebx, esi
mov esi, dword [ebp - 0x14]
mov ecx, dword [esi + 0xdc00]
shl ecx, 3
sub ebx, ecx
mov dword [esp + 0x1c], ebx
mov edx, dword [esi + 0xdc00]
shl edx, 3
mov dword [esp + 0x18], edx
mov eax, dword [edi + 0x5178]
mov dword [esp + 0x14], eax
mov ebx, dword [edi + 0x517c]
mov eax, 0xd7c088
mov dword [esp + 0x10], ebx
mov ecx, dword [esi + 0x13090]
mov ebx, 0xd7c1a0
mov dword [esp + 0xc], ecx
mov edx, dword [edi + 0x5170]
mov edi, 0xd7c1d8
mov dword [esp + 4], eax
shl edx, 3
mov dword [esp + 8], edx
mov dword [esp], esi
call fcn.00a19868
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00a19868
mov dword [esp], esi
mov ecx, 0xd7c1f8
mov dword [esp + 4], ecx
call fcn.00a19868
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00a19868
mov dword [esp], esi
mov edx, 0xd7c244
mov dword [esp + 4], edx
call fcn.00a19868
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax + 0x5170]
shl ebx, 3
mov dword [esi + 0x13090], ebx
mov ebx, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebx + 0x7d08]
cmp edx, 0x3b9aca00
jg 0xa1f42e
add esp, 0x1dc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x184]
lea ebx, [edx - 1]
mov edx, dword [ecx + edi*4 + 0x1200]
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
and ebx, 7
inc edi
call fcn.00a1cf58
add dword [ebp - 0xd4], esi
mov eax, 1
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], ecx
jge 0xa1e752
test ebx, ebx
je 0xa1f30f
cmp ebx, 1
je 0xa1f2d5
cmp ebx, 2
je 0xa1f2ad
cmp ebx, 3
je 0xa1f285
cmp ebx, 4
je 0xa1f25d
cmp ebx, 5
je 0xa1f235
cmp ebx, 6
je 0xa1f20d
mov eax, dword [ebp - 0x184]
mov ebx, 2
mov edx, dword [eax + edi*4 + 0x1200]
mov dword [esp], esi
inc edi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0xd4], esi
mov dword [ebp - 0x1a0], ebx
mov ecx, dword [ebp - 0x184]
mov edx, dword [ecx + edi*4 + 0x1200]
inc edi
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0xd4], esi
inc dword [ebp - 0x1a0]
mov ebx, dword [ebp - 0x184]
mov edx, dword [ebx + edi*4 + 0x1200]
inc edi
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0xd4], esi
inc dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x184]
mov edx, dword [eax + edi*4 + 0x1200]
inc edi
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0xd4], esi
inc dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x184]
mov edx, dword [ecx + edi*4 + 0x1200]
inc edi
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0xd4], esi
inc dword [ebp - 0x1a0]
mov ebx, dword [ebp - 0x184]
mov edx, dword [ebx + edi*4 + 0x1200]
inc edi
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0xd4], esi
inc dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x184]
mov edx, dword [eax + edi*4 + 0x1200]
inc edi
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
inc dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x114]
add dword [ebp - 0xd4], esi
cmp dword [ebp - 0x1a0], edx
jge 0xa1e752
mov ebx, dword [ebp - 0x184]
mov edx, dword [ebx + edi*4 + 0x1200]
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov ecx, dword [ebp - 0x184]
mov ebx, dword [ebp - 0xd4]
mov edx, dword [ecx + edi*4 + 0x1204]
mov dword [esp], esi
add ebx, esi
mov eax, dword [ebp - 0x180]
add ebx, esi
add ebx, esi
add ebx, esi
call fcn.00a1cf58
mov eax, dword [ebp - 0x184]
add ebx, esi
add ebx, esi
add ebx, esi
mov edx, dword [eax + edi*4 + 0x1208]
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov ecx, dword [ebp - 0x184]
mov edx, dword [ecx + edi*4 + 0x120c]
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov eax, dword [ebp - 0x184]
mov edx, dword [eax + edi*4 + 0x1210]
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov ecx, dword [ebp - 0x184]
mov edx, dword [ecx + edi*4 + 0x1214]
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov eax, dword [ebp - 0x184]
mov edx, dword [eax + edi*4 + 0x1218]
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov ecx, dword [ebp - 0x184]
mov edx, dword [ecx + edi*4 + 0x121c]
add edi, 8
mov dword [esp], esi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x1a0], 8
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0xd4], ebx
cmp dword [ebp - 0x1a0], edx
jl 0xa1f30f
jmp 0xa1e752
mov edx, dword [esi + 0x7d08]
mov esi, dword [ebp - 0x14]
lea edi, [ecx + ecx*2]
shl edi, 4
sub dword [edi + esi + 0x10084], edx
lea edx, [ecx + ecx*2 + 3]
shl edx, 4
add edx, esi
mov ebx, dword [esi + 0x7d08]
mov eax, dword [edx + 0x10084]
sub eax, ebx
mov dword [edx + 0x10084], eax
lea edx, [ecx + ecx*2 + 6]
mov edi, dword [esi + 0x7d08]
shl edx, 4
add edx, esi
mov eax, dword [edx + 0x10084]
sub eax, edi
mov dword [edx + 0x10084], eax
lea edx, [ecx + ecx*2 + 9]
mov ebx, dword [esi + 0x7d08]
shl edx, 4
add edx, esi
mov eax, dword [edx + 0x10084]
sub eax, ebx
mov dword [edx + 0x10084], eax
lea edx, [ecx + ecx*2 + 0xc]
mov edi, dword [esi + 0x7d08]
shl edx, 4
add edx, esi
mov eax, dword [edx + 0x10084]
sub eax, edi
mov dword [edx + 0x10084], eax
lea edx, [ecx + ecx*2 + 0xf]
mov ebx, dword [esi + 0x7d08]
shl edx, 4
add edx, esi
mov eax, dword [edx + 0x10084]
sub eax, ebx
mov dword [edx + 0x10084], eax
lea edx, [ecx + ecx*2 + 0x12]
mov edi, dword [esi + 0x7d08]
shl edx, 4
add edx, esi
mov eax, dword [edx + 0x10084]
sub eax, edi
mov dword [edx + 0x10084], eax
lea edx, [ecx + ecx*2 + 0x15]
mov ebx, dword [esi + 0x7d08]
shl edx, 4
add ecx, 8
add edx, esi
mov edi, dword [edx + 0x10084]
sub edi, ebx
cmp ecx, 0xff
mov dword [edx + 0x10084], edi
jle 0xa1f428
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov dword [eax + 0x7d08], ecx
add esp, 0x1dc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
xor edi, edi
mov dword [ebp - 0x18c], edi
mov ebx, dword [ebp - 0x184]
mov esi, 0x55555556
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebx + 0x1444]
mov ebx, dword [ebp - 0x184]
mov edi, dword [ecx + edx*4]
mov ecx, dword [ebp - 0xd0]
mov eax, edi
imul esi
mov eax, edi
mov esi, dword [ebx + ecx*4 + 0x1448]
sar eax, 0x1f
sub edx, eax
test edx, edx
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xdc], esi
jle 0xa1f790
mov edx, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0x184]
mov eax, dword [ebp - 0xdc]
lea esi, [edx + edx*2]
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], esi
mov esi, dword [ebp - 0x18c]
mov dword [esp], eax
mov eax, dword [ebp - 0x180]
add esi, ebx
mov edx, dword [esi + 0x1200]
lea ebx, [edi - 1]
and ebx, 1
call fcn.00a1cf58
mov ecx, dword [ebp - 0xdc]
mov dword [esp], ecx
mov edx, dword [esi + 0x1204]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov edx, dword [ebp - 0xdc]
mov dword [esp], edx
mov eax, dword [ebp - 0x180]
mov edx, dword [esi + 0x1208]
call fcn.00a1cf58
add dword [ebp - 0x18c], 0xc
mov eax, 1
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0xd8]
add dword [ebp - 0xd4], edi
lea edi, [esi + 0xc]
cmp dword [ebp - 0x19c], ecx
jge 0xa1f790
test ebx, ebx
je 0xa1f6b8
mov ecx, dword [ebp - 0xdc]
mov dword [esp], ecx
mov edx, dword [edi + 0x1200]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov edx, dword [ebp - 0xdc]
mov dword [esp], edx
mov edx, dword [edi + 0x1204]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov ebx, dword [ebp - 0xdc]
mov dword [esp], ebx
mov edx, dword [edi + 0x1208]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x18c], 0xc
mov eax, 2
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0xd8]
add dword [ebp - 0xd4], edi
lea edi, [esi + 0x18]
cmp dword [ebp - 0x19c], ecx
jmp 0xa1f78a
mov edx, dword [ebp - 0xdc]
mov dword [esp], edx
mov edx, dword [edi + 0x1200]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov esi, dword [ebp - 0xdc]
mov dword [esp], esi
mov edx, dword [edi + 0x1204]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov dword [esp], esi
mov edx, dword [edi + 0x1208]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov ebx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xdc]
add esi, ebx
lea ebx, [edi + 0xc]
add edi, 0x18
mov dword [esp], eax
mov edx, dword [ebx + 0x1200]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov ecx, dword [ebp - 0xdc]
mov dword [esp], ecx
mov edx, dword [ebx + 0x1204]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov edx, dword [ebp - 0xdc]
mov dword [esp], edx
mov eax, dword [ebp - 0x180]
mov edx, dword [ebx + 0x1208]
call fcn.00a1cf58
add dword [ebp - 0x19c], 2
mov eax, dword [ebp - 0xe0]
add dword [ebp - 0x18c], 0x18
add esi, eax
mov dword [ebp - 0xd4], esi
mov esi, dword [ebp - 0xd8]
cmp dword [ebp - 0x19c], esi
jl 0xa1f6b8
inc dword [ebp - 0xd0]
cmp dword [ebp - 0xd0], 3
jle 0xa1f538
mov edx, dword [ebp - 0x180]
mov esi, dword [ebp - 0x184]
mov ecx, dword [edx + 0x13100]
lea eax, [ecx + ecx*2]
mov dword [ebp - 0xe4], eax
mov edi, dword [ebp - 0xe4]
mov eax, dword [esi + 0x12a4]
mov dword [ebp - 0x174], eax
cmp eax, edi
jge 0xa1f7da
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0x184]
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xec], ebx
mov edi, dword [ecx + 0x12bc]
mov eax, edi
mov dword [ebp - 0xe8], edi
shl eax, 4
add eax, 0xd79f60
mov dword [ebp - 0xf0], eax
test edi, edi
je 0xa1f977
mov edx, dword [ebp - 0xe4]
xor edi, edi
cmp dword [ebp - 0xf8], edx
mov dword [ebp - 0xf4], edi
jge 0xa1f96b
xor eax, eax
mov ecx, dword [ebp - 0x184]
xor ebx, ebx
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xf4]
xor edi, edi
mov dword [ebp - 0x1b0], ebx
mov esi, dword [ebp - 0xf0]
mov edx, dword [ecx + eax*4 + 0x900]
mov ebx, dword [esi]
mov esi, ecx
test edx, edx
mov ecx, dword [ecx + eax*4 + 0x904]
je 0xa1f886
fld dword [esi + eax*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa1f87b
mov edi, 1
mov esi, 0xffffffff
mov dword [ebp - 0xfc], esi
cmp dword [ebp - 0xe8], 0xf
jle 0xa1f8c3
cmp edx, 0xe
jle 0xa1f8a5
mov dword [ebp - 0x1b0], ebx
lea eax, [edx + edx - 0x1e]
or edi, eax
mov edx, 0xf
cmp ecx, 0xe
jle 0xa1f8be
add dword [ebp - 0x1b0], ebx
lea esi, [ecx - 0xf]
mov cl, bl
shl edi, cl
or edi, esi
mov ecx, 0xf
mov ebx, 0x10
test ecx, ecx
je 0xa1f8eb
mov eax, dword [ebp - 0x184]
add edi, edi
mov esi, dword [ebp - 0xf4]
fld dword [eax + esi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc edi, 0
dec dword [ebp - 0xfc]
imul edx, ebx
mov esi, dword [ebp - 0x1b0]
mov ebx, dword [ebp - 0xfc]
add edx, ecx
mov ecx, dword [ebp - 0xf0]
sub esi, ebx
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0xfc]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, edi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0xf4], 2
mov edx, dword [ebp - 0xe4]
add dword [ebp - 0xf8], ebx
cmp dword [ebp - 0xf4], edx
jl 0xa1f82e
mov edx, dword [ebp - 0x184]
mov edi, dword [edx + 0x12a4]
mov dword [ebp - 0x174], edi
mov esi, dword [ebp - 0xf8]
mov dword [ebp - 0xec], esi
mov edi, dword [ebp - 0x184]
xor ecx, ecx
mov dword [ebp - 0x108], ecx
mov ebx, dword [edi + 0x12c0]
mov eax, ebx
mov dword [ebp - 0x100], ebx
shl eax, 4
add eax, 0xd79f60
mov dword [ebp - 0x104], eax
xor eax, eax
test ebx, ebx
je 0xa1faf8
mov edi, dword [ebp - 0xe4]
cmp edi, dword [ebp - 0x174]
jge 0xa1faf2
mov eax, dword [ebp - 0x184]
xor edx, edx
xor esi, esi
mov dword [ebp - 0x110], edx
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x10c], esi
mov edx, dword [eax + edi*4 + 0x900]
xor esi, esi
mov ebx, dword [ecx]
mov ecx, dword [eax + edi*4 + 0x904]
test edx, edx
je 0xa1fa13
fld dword [eax + edi*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa1fa08
mov eax, 1
mov dword [ebp - 0x110], eax
mov eax, 0xffffffff
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x100], 0xf
jle 0xa1fa54
cmp edx, 0xe
jle 0xa1fa32
lea esi, [edx + edx - 0x1e]
mov edx, 0xf
or dword [ebp - 0x110], esi
mov esi, ebx
cmp ecx, 0xe
jle 0xa1fa4f
lea eax, [ecx - 0xf]
mov cl, bl
add esi, ebx
shl dword [ebp - 0x110], cl
mov ecx, 0xf
or dword [ebp - 0x110], eax
mov ebx, 0x10
test ecx, ecx
je 0xa1fa7e
shl dword [ebp - 0x110], 1
mov eax, dword [ebp - 0x184]
fld dword [eax + edi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc dword [ebp - 0x110], 0
dec dword [ebp - 0x10c]
imul edx, ebx
mov ebx, dword [ebp - 0x10c]
add edi, 2
sub esi, ebx
add edx, ecx
mov ecx, dword [ebp - 0x104]
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0x10c]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x108], ebx
cmp edi, dword [ebp - 0x174]
jl 0xa1f9bd
mov edx, dword [ebp - 0x184]
mov edi, dword [edx + 0x12a4]
mov dword [ebp - 0x174], edi
mov eax, dword [ebp - 0x108]
mov esi, dword [ebp - 0xec]
add eax, esi
mov dword [ebp - 0x1a8], eax
jmp 0xa1ec6e
add eax, 3
jmp 0xa1ecb6
mov ecx, 0x10
mov edx, 0x10
mov dword [ebx + 0x12c0], ecx
jmp 0xa1e372
mov edx, 0x10
mov dword [ebx + 0x12bc], edx
mov edx, 0x10
jmp 0xa1e355
mov ecx, 0x10
mov edx, 0x10
mov dword [ebx + 0x12c4], ecx
jmp 0xa1e215
mov edx, 0x10
mov dword [ebx + 0x12c0], edx
mov edx, 0x10
jmp 0xa1e1f8
mov eax, 0x10
mov edx, 0x10
mov dword [ebx + 0x12bc], eax
jmp 0xa1e1db
mov dword [ebp - 0x30], 0
mov edi, dword [ebp - 0x180]
mov eax, dword [edi + 0x7ca4]
mov dword [ebp - 0x34], 0
cmp eax, 0
jle 0xa2026a
imul eax, dword [ebp - 0x34], 0x145c
mov dword [ebp - 0x38], 0
mov ecx, dword [ebp - 0x40]
imul esi, dword [ebp - 0x30], 0x28b8
add esi, eax
add esi, ecx
mov dword [ebp - 0x44], esi
mov edx, esi
mov ebx, dword [esi + 0x12b0]
mov eax, dword [edx + 0x1304]
mov esi, dword [ebx*4 + 0xd7cfe0]
mov edi, dword [ebx*4 + 0xd7cfa0]
xor ebx, ebx
cmp eax, 0
jle 0xa1fc00
lea esi, [esi]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + ebx*4 + 0x1200]
cmp edx, 0xffffffff
jne 0xa2032b
inc ebx
cmp eax, ebx
jg 0xa1fbe8
mov esi, dword [ebp - 0x44]
nop
lea esi, [esi]
mov eax, dword [esi + 0x12fc]
cmp eax, ebx
jle 0xa1fc2a
mov esi, dword [ebp - 0x44]
mov edx, dword [esi + ebx*4 + 0x1200]
cmp edx, 0xffffffff
jne 0xa2034d
inc ebx
cmp eax, ebx
jg 0xa1fc12
mov edi, dword [ebp - 0x44]
cmp dword [edi + 0x12b4], 2
je 0xa20364
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x180]
mov eax, dword [edx + 0x12d8]
mov edi, dword [edx + 0x12dc]
mov ebx, dword [ebp - 0x180]
inc eax
mov esi, dword [esi + 0x12a4]
mov ecx, dword [ecx + eax*4 + 0x13098]
add eax, edi
mov eax, dword [ebx + eax*4 + 0x1309c]
cmp ecx, esi
mov dword [ebp - 0x194], esi
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x80], eax
jle 0xa1fc82
mov dword [ebp - 0x7c], esi
mov esi, dword [ebp - 0x194]
cmp dword [ebp - 0x80], esi
jle 0xa1fc90
mov dword [ebp - 0x80], esi
mov ecx, dword [ebp - 0x44]
xor edi, edi
xor ebx, ebx
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x88], ebx
mov edx, dword [ecx + 0x12bc]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x84]
shl edx, 4
add edx, 0xd79f60
mov dword [ebp - 0x8c], edx
test eax, eax
je 0xa1fe0f
mov esi, dword [ebp - 0x7c]
xor eax, eax
cmp dword [ebp - 0x94], esi
mov dword [ebp - 0x90], eax
jge 0xa1fe03
mov esi, dword [ebp - 0x90]
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x8c]
mov dword [ebp - 0x1b0], ebx
mov edx, dword [eax + esi*4 + 0x900]
mov ebx, dword [edi]
xor edi, edi
mov ecx, dword [eax + esi*4 + 0x904]
test edx, edx
je 0xa1fd36
fld dword [eax + esi*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa1fd2b
mov edi, 1
mov esi, 0xffffffff
mov dword [ebp - 0x98], esi
cmp dword [ebp - 0x84], 0xf
jle 0xa1fd73
cmp edx, 0xe
jle 0xa1fd55
mov dword [ebp - 0x1b0], ebx
lea eax, [edx + edx - 0x1e]
or edi, eax
mov edx, 0xf
cmp ecx, 0xe
jle 0xa1fd6e
add dword [ebp - 0x1b0], ebx
lea esi, [ecx - 0xf]
mov cl, bl
shl edi, cl
or edi, esi
mov ecx, 0xf
mov ebx, 0x10
test ecx, ecx
je 0xa1fd98
mov eax, dword [ebp - 0x44]
add edi, edi
mov esi, dword [ebp - 0x90]
fld dword [eax + esi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc edi, 0
dec dword [ebp - 0x98]
imul edx, ebx
mov esi, dword [ebp - 0x1b0]
mov ebx, dword [ebp - 0x98]
add edx, ecx
mov ecx, dword [ebp - 0x8c]
sub esi, ebx
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0x98]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, edi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x90], 2
mov edi, dword [ebp - 0x7c]
add dword [ebp - 0x94], ebx
cmp dword [ebp - 0x90], edi
jl 0xa1fce3
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x88], edx
mov eax, dword [ebp - 0x44]
xor esi, esi
mov dword [ebp - 0xa4], esi
mov ecx, dword [eax + 0x12c0]
xor eax, eax
mov dword [ebp - 0x9c], ecx
mov edi, dword [ebp - 0x9c]
shl ecx, 4
add ecx, 0xd79f60
mov dword [ebp - 0xa0], ecx
test edi, edi
je 0xa1ff73
mov edi, dword [ebp - 0x7c]
cmp edi, dword [ebp - 0x80]
jge 0xa1ff6d
mov ecx, dword [ebp - 0x44]
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xa0]
xor esi, esi
mov dword [ebp - 0xa8], ebx
mov edx, dword [ecx + edi*4 + 0x900]
mov ebx, dword [eax]
mov eax, ecx
test edx, edx
mov ecx, dword [ecx + edi*4 + 0x904]
je 0xa1fea6
fld dword [eax + edi*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa1fe9b
mov eax, 1
mov dword [ebp - 0xac], eax
mov eax, 0xffffffff
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0x9c], 0xf
jle 0xa1fee7
cmp edx, 0xe
jle 0xa1fec5
lea esi, [edx + edx - 0x1e]
mov edx, 0xf
or dword [ebp - 0xac], esi
mov esi, ebx
cmp ecx, 0xe
jle 0xa1fee2
lea eax, [ecx - 0xf]
mov cl, bl
add esi, ebx
shl dword [ebp - 0xac], cl
mov ecx, 0xf
or dword [ebp - 0xac], eax
mov ebx, 0x10
test ecx, ecx
je 0xa1ff0e
shl dword [ebp - 0xac], 1
mov eax, dword [ebp - 0x44]
fld dword [eax + edi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc dword [ebp - 0xac], 0
dec dword [ebp - 0xa8]
imul edx, ebx
mov ebx, dword [ebp - 0xa8]
add edi, 2
sub esi, ebx
add edx, ecx
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0xa8]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0xa4], ebx
cmp edi, dword [ebp - 0x80]
jl 0xa1fe51
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x44]
xor edx, edx
mov ebx, dword [ebp - 0x88]
mov dword [ebp - 0xb8], edx
mov edi, dword [ecx + 0x12c4]
add eax, ebx
mov dword [ebp - 0x78], eax
mov esi, edi
xor eax, eax
mov dword [ebp - 0xb0], edi
shl esi, 4
add esi, 0xd79f60
mov dword [ebp - 0xb4], esi
test edi, edi
je 0xa200e4
mov edi, dword [ebp - 0x80]
cmp edi, dword [ebp - 0x194]
jge 0xa200de
mov ecx, dword [ebp - 0x44]
xor esi, esi
xor eax, eax
mov dword [ebp - 0xbc], esi
mov edx, dword [ebp - 0xb4]
xor esi, esi
mov dword [ebp - 0xc0], eax
mov ebx, dword [edx]
mov eax, ecx
mov edx, dword [ecx + edi*4 + 0x900]
mov ecx, dword [ecx + edi*4 + 0x904]
test edx, edx
je 0xa20014
fld dword [eax + edi*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa20009
mov eax, 1
mov dword [ebp - 0xc0], eax
mov eax, 0xffffffff
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xb0], 0xf
jle 0xa20055
cmp edx, 0xe
jle 0xa20033
lea esi, [edx + edx - 0x1e]
mov edx, 0xf
or dword [ebp - 0xc0], esi
mov esi, ebx
cmp ecx, 0xe
jle 0xa20050
lea eax, [ecx - 0xf]
mov cl, bl
add esi, ebx
shl dword [ebp - 0xc0], cl
mov ecx, 0xf
or dword [ebp - 0xc0], eax
mov ebx, 0x10
test ecx, ecx
je 0xa2007c
shl dword [ebp - 0xc0], 1
mov eax, dword [ebp - 0x44]
fld dword [eax + edi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc dword [ebp - 0xc0], 0
dec dword [ebp - 0xbc]
imul edx, ebx
mov ebx, dword [ebp - 0xbc]
add edi, 2
sub esi, ebx
add edx, ecx
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0xbc]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0xb8], ebx
cmp edi, dword [ebp - 0x194]
jl 0xa1ffbf
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x38]
mov edi, dword [edx + 0x12a4]
add eax, ecx
add eax, esi
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x17c], edi
mov edi, dword [ebp - 0x44]
xor esi, esi
mov ebx, dword [ebp - 0x17c]
mov dword [ebp - 0xcc], esi
mov edx, dword [ebp - 0x44]
mov ecx, dword [edi + 0x12e8]
lea eax, [edi + ebx*4]
lea esi, [eax + 0x900]
mov edi, eax
mov eax, dword [edx + 0x12a8]
shl ecx, 4
add ecx, 0xd7a160
mov dword [ebp - 0xc4], ecx
sub eax, ebx
js 0xa2062c
sar eax, 2
test eax, eax
mov dword [ebp - 0xc8], eax
jle 0xa20241
mov edx, dword [ebp - 0xc4]
mov ebx, dword [edx + 0xc]
mov dword [ebp - 0x178], ebx
lea esi, [esi]
mov eax, dword [esi]
xor ecx, ecx
xor ebx, ebx
test eax, eax
je 0xa20198
fld dword [edi]
mov ebx, 8
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa20198
mov ecx, 1
jmp 0xa20198
mov edx, dword [esi + 4]
test edx, edx
je 0xa201b3
fld dword [edi + 4]
add ecx, ecx
add ebx, 4
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc ecx, 0
mov edx, dword [esi + 8]
test edx, edx
je 0xa201ce
fld dword [edi + 8]
add ecx, ecx
add ebx, 2
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc ecx, 0
mov edx, dword [esi + 0xc]
test edx, edx
je 0xa201e7
fld dword [edi + 0xc]
add ecx, ecx
inc ebx
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc ecx, 0
mov edx, dword [ebp - 0xc4]
add esi, 0x10
add edi, 0x10
mov eax, dword [edx + 8]
movsx edx, word [eax + ebx*2]
add edx, ecx
mov ecx, dword [ebp - 0x178]
movsx eax, byte [ebx + ecx]
mov dword [esp], eax
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x178], eax
movsx edx, byte [ebx + eax]
dec dword [ebp - 0xc8]
add dword [ebp - 0xcc], edx
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
jg 0xa20168
inc dword [ebp - 0x34]
mov esi, dword [ebp - 0x198]
mov ebx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0x180]
add esi, ebx
mov eax, dword [edi + 0x7ca4]
add dword [ebp - 0x3c], esi
cmp eax, dword [ebp - 0x34]
jg 0xa1fb9f
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 1
jle 0xa1fb8f
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x130]
mov dword [ebp - 0x180], ecx
mov ecx, dword [ebp - 0x3c]
add esi, ecx
mov dword [ebp - 0x18], esi
mov esi, dword [ebx + 0x517c]
cmp esi, 7
jle 0xa1ee1e
mov dword [esp], 8
mov edx, 0x4c
sub esi, 8
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
cmp esi, 7
jle 0xa1ee1e
mov dword [esp], 8
mov edx, 0x41
sub esi, 8
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
cmp esi, 7
jle 0xa1ee1e
mov dword [esp], 8
mov edx, 0x4d
sub esi, 8
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
cmp esi, 7
jle 0xa1ee1e
mov dword [esp], 8
mov edx, 0x45
sub esi, 8
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
jmp 0xa1ee1e
mov dword [esp], esi
inc ebx
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x38], esi
mov edx, dword [ebp - 0x44]
mov eax, dword [edx + 0x1304]
cmp eax, ebx
jmp 0xa1fbfe
mov dword [esp], edi
inc ebx
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x38], edi
jmp 0xa1fc08
mov edx, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x44]
mov eax, dword [edx + 0x13100]
mov ecx, dword [ecx + 0x12a4]
lea ebx, [eax + eax*2]
cmp ecx, ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x17c], ecx
jge 0xa2038c
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x5c], 0
mov ebx, dword [ebp - 0x44]
mov dword [ebp - 0x50], 0
mov esi, dword [ebx + 0x12bc]
mov edi, esi
mov dword [ebp - 0x4c], esi
shl edi, 4
add edi, 0xd79f60
mov dword [ebp - 0x54], edi
test esi, esi
je 0xa204e0
mov dword [ebp - 0x58], 0
mov ecx, dword [ebp - 0x48]
cmp dword [ebp - 0x5c], ecx
jge 0xa204da
mov dword [ebp - 0x60], 0
mov ecx, dword [ebp - 0x58]
xor edx, edx
mov dword [ebp - 0x1b0], edx
mov esi, dword [ebp - 0x44]
xor edi, edi
mov eax, dword [ebp - 0x54]
mov edx, dword [esi + ecx*4 + 0x900]
mov ebx, dword [eax]
mov eax, ecx
test edx, edx
mov ecx, dword [esi + ecx*4 + 0x904]
je 0xa20419
fld dword [esi + eax*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa20412
mov edi, 1
mov dword [ebp - 0x60], 0xffffffff
cmp dword [ebp - 0x4c], 0xf
jle 0xa20453
cmp edx, 0xe
jle 0xa20435
mov dword [ebp - 0x1b0], ebx
lea esi, [edx + edx - 0x1e]
or edi, esi
mov edx, 0xf
cmp ecx, 0xe
jle 0xa2044e
add dword [ebp - 0x1b0], ebx
lea eax, [ecx - 0xf]
mov cl, bl
shl edi, cl
or edi, eax
mov ecx, 0xf
mov ebx, 0x10
test ecx, ecx
je 0xa20472
mov eax, dword [ebp - 0x44]
add edi, edi
mov esi, dword [ebp - 0x58]
fld dword [eax + esi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc edi, 0
dec dword [ebp - 0x60]
imul edx, ebx
mov esi, dword [ebp - 0x1b0]
mov ebx, dword [ebp - 0x60]
add edx, ecx
mov ecx, dword [ebp - 0x54]
sub esi, ebx
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0x60]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, edi
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x58], 2
mov edi, dword [ebp - 0x48]
add dword [ebp - 0x5c], ebx
cmp dword [ebp - 0x58], edi
jl 0xa203cf
mov edi, dword [ebp - 0x44]
mov edx, dword [edi + 0x12a4]
mov dword [ebp - 0x17c], edx
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x6c], 0
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebx + 0x12c0]
mov dword [ebp - 0x64], ecx
mov eax, ecx
shl eax, 4
add eax, 0xd79f60
mov dword [ebp - 0x68], eax
xor eax, eax
test ecx, ecx
je 0xa20617
mov edi, dword [ebp - 0x48]
cmp edi, dword [ebp - 0x17c]
jge 0xa20614
mov dword [ebp - 0x70], 0
mov edx, dword [ebp - 0x68]
xor esi, esi
mov dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x44]
mov ebx, dword [edx]
mov edx, dword [eax + edi*4 + 0x900]
mov ecx, dword [eax + edi*4 + 0x904]
test edx, edx
je 0xa2055f
fld dword [eax + edi*4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
jae 0xa20558
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x70], 0xffffffff
cmp dword [ebp - 0x64], 0xf
jle 0xa20594
cmp edx, 0xe
jle 0xa20578
lea esi, [edx + edx - 0x1e]
mov edx, 0xf
or dword [ebp - 0x74], esi
mov esi, ebx
cmp ecx, 0xe
jle 0xa2058f
lea eax, [ecx - 0xf]
mov cl, bl
add esi, ebx
shl dword [ebp - 0x74], cl
mov ecx, 0xf
or dword [ebp - 0x74], eax
mov ebx, 0x10
test ecx, ecx
je 0xa205b2
shl dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x44]
fld dword [eax + edi*4 + 4]
fcomp dword [0xd7c29c]
fnstsw ax
sahf
adc dword [ebp - 0x74], 0
dec dword [ebp - 0x70]
imul edx, ebx
mov ebx, dword [ebp - 0x70]
add edi, 2
sub esi, ebx
add edx, ecx
mov ecx, dword [ebp - 0x68]
mov eax, dword [ecx + 0xc]
movsx ebx, byte [edx + eax]
mov eax, dword [ebp - 0x70]
add ebx, eax
mov eax, dword [ecx + 8]
movsx edx, word [eax + edx*2]
mov dword [esp], ebx
mov eax, dword [ebp - 0x180]
add ebx, esi
call fcn.00a1cf58
mov dword [esp], esi
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x180]
call fcn.00a1cf58
add dword [ebp - 0x6c], ebx
cmp edi, dword [ebp - 0x17c]
jl 0xa20519
mov edx, dword [ebp - 0x44]
mov edi, dword [edx + 0x12a4]
mov dword [ebp - 0x17c], edi
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x38]
add eax, ecx
add eax, esi
mov dword [ebp - 0x198], eax
jmp 0xa20103
add eax, 3
jmp 0xa20145
call fcn.00a23308
mov edi, eax
xor ebx, ebx
jmp 0xa20662
cmp esi, 7
jle 0xa1ee27
movsx edx, byte [ebx + edi]
mov dword [esp], 8
mov eax, dword [ebp - 0x180]
sub esi, 8
inc ebx
call fcn.00a1cf58
mov dword [esp], edi
call fcn.00a5b888
cmp eax, ebx
jg 0xa2063f
jmp 0xa1ee27
add eax, 7
jmp 0xa1f006
lea eax, [ebx + 7]
jmp 0xa1f070
mov dword [esp], esi
mov edi, 0xd7c268
mov dword [esp + 4], edi
call fcn.00a19868
jmp 0xa1e699
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + 0x5174]
mov dword [esp], 3
jmp 0xa1e108