Function at 0xaacc50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov eax, 0x130c
push edi
push esi
push ebx
call fcn.00bd0e20
sub esp, eax
mov edi, dword [esp + 0x1330]
mov edx, dword [esp + 0x1334]
mov eax, dword [esp + 0x1328]
movzx edi, byte [edi + 0xdfc048]
mov dword [esp + 0x98], edi
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x1320]
mov edi, dword [edi + 0x98]
mov dword [esp + 0xac], edi
test edi, edi
mov edi, dword [esp + 0x1338]
lea edx, [edx + edi*2 + 0x1c2c]
mov edi, dword [esp + 0x1320]
mov edi, dword [edi + edx*4]
jne 0xaace5f
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0x1320]
mov edi, dword [edi + 0x48e4]
mov edx, edi
shl edx, 4
mov dword [esp + 0x48], edi
lea edi, [edx + 0xdfce40]
mov edx, dword [esp + 0x132c]
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x1320]
shl edx, 5
lea eax, [edi + eax*4]
mov ebp, dword [eax + 0x6cc]
mov ebx, dword [eax + 0x6ac]
xor eax, eax
add edx, ebp
mov dword [esp + 0x74], edx
xor esi, esi
xor edi, edi
mov dword [esp + eax + 0x180], esi
mov dword [esp + eax + 0x184], edi
add eax, 8
cmp eax, 0x20
jb 0xaacd10
mov eax, dword [esp + 0x133c]
mov edi, dword [esp + 0x1320]
movzx eax, byte [eax + 0xdfd060]
movzx edx, byte [edi + eax + 0x6d4f]
movzx eax, byte [edi + eax + 0x6d48]
lea esi, [edx + eax]
lea eax, [esi + 1]
sar eax, 1
cmp esi, 0x7f
cmovle esi, eax
cmp dword [esp + 0x98], 0xf
jg 0xaacdf1
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x1324]
movzx edx, byte [eax + 0xf]
mov eax, dword [esp + 0x74]
add edx, edx
movzx eax, word [eax + edx]
movsx edx, word [edi + edx]
imul eax, edx
add eax, 0x7fff
cmp eax, 0xffff
ja 0xaae775
mov ebp, edi
mov ecx, 0xf
mov edi, dword [esp + 0x74]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x48], ebx
jmp 0xaacde5
movzx edx, byte [esi + ecx - 1]
mov ecx, ebx
add edx, edx
movsx eax, word [ebp + edx]
movzx edx, word [edi + edx]
imul eax, edx
add eax, 0x7fff
cmp eax, 0xffff
ja 0xaad213
cmp dword [esp + 0x98], ecx
lea ebx, [ecx - 1]
jne 0xaacdc0
mov eax, dword [esp + 0x1324]
mov ecx, 0x20
test al, 1
jne 0xaad983
test al, 2
jne 0xaad973
mov ebx, ecx
xor edx, edx
and ebx, 0xfffffff8
xor ebp, ebp
mov dword [eax + edx], 0
mov dword [eax + edx + 4], ebp
add edx, 8
cmp edx, ebx
jb 0xaace14
add eax, edx
test cl, 4
je 0xaace38
mov dword [eax], 0
add eax, 4
test cl, 2
je 0xaace45
mov word [eax], 0
add eax, 2
test cl, 1
je 0xaace4d
mov byte [eax], 0
mov eax, dword [esp + 0xac]
add esp, 0x130c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x1320]
mov edx, dword [esp + 0x132c]
mov ebx, dword [edi + 0x48e4]
lea eax, [edi + eax*4]
mov esi, dword [eax + 0x6cc]
shl edx, 5
mov ecx, dword [eax + 0x70c]
mov edi, dword [esp + 0x1330]
mov ebp, dword [eax + 0x6ac]
mov eax, ebx
shl eax, 4
add ecx, edx
add edx, esi
add eax, edi
movzx esi, word [eax + eax + 0xdfcae0]
movzx edi, word [eax + eax + 0xdfcaa0]
xor eax, eax
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x1324]
mov edx, dword [edx + eax]
mov dword [esp + eax + 0x100], edx
add eax, 4
cmp eax, 0x20
jb 0xaaceb7
mov eax, dword [esp + 0x1324]
mov edx, dword [esp + 0x48]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov eax, dword [esp + 0x1320]
mov dword [esp + 4], edx
call dword [eax + 0x9360]
test eax, eax
mov dword [esp + 0xac], eax
je 0xaace4d
mov eax, dword [esp + 0x132c]
shl eax, 6
add eax, ebp
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x1324]
lea ebp, [esp + 0x180]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1320]
call dword [eax + 0x9318]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x1320]
mov ecx, dword [esp + 0x1330]
lea eax, [ebp + eax*2]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x939c]
mov edx, dword [esp + 0x1330]
movzx ecx, word [edx + edx + 0xdfca80]
mov edx, dword [esp + 0x1320]
mov dword [esp + 0x48], ecx
lea edx, [edx + ecx + 0x3674]
mov ecx, eax
add ecx, dword [esp + 0x98]
mov dword [esp + 0xa4], ecx
je 0xaae51d
mov eax, 0xffffffff
mov dword [esp + 0x210], eax
mov eax, 0xffffffff
mov dword [esp + 0x214], eax
mov eax, 0xffffffff
mov dword [esp + 0x220], eax
mov eax, 0xffffffff
mov dword [esp + 0x224], eax
mov eax, 0xffffffff
mov dword [esp + 0x230], eax
mov eax, 0xffffffff
mov dword [esp + 0x234], eax
mov eax, 0x10000000
mov dword [esp + 0x204], eax
xor eax, eax
mov dword [esp + 0x208], eax
xor eax, eax
mov word [esp + 0x302], ax
xor eax, eax
mov word [esp + 0x300], ax
mov eax, dword [edx]
shl ebx, 4
add ebx, 0xdfce40
mov dword [esp + 0x74], ebx
xor ebx, ebx
mov dword [esp + 0x200], ebx
mov ebx, dword [esp + 0x1320]
mov dword [esp + 0xf0], eax
mov eax, dword [edx + 4]
mov dword [esp + 0xf4], eax
movzx eax, word [edx + 8]
mov word [esp + 0xf8], ax
mov eax, dword [esp + 0x48]
movzx eax, byte [ebx + eax + 0x3674]
mov ebx, dword [esp + 0x133c]
mov byte [esp + 0xfc], al
movzx eax, byte [edx + 4]
and ebx, 0xf
cmp dword [esp + 0x98], ecx
mov dword [esp + 0x88], ebx
mov byte [esp + 0xfd], al
movzx eax, byte [edx + 8]
mov byte [esp + 0xfe], al
movzx eax, byte [edx + 9]
mov byte [esp + 0xff], al
jg 0xaae800
mov eax, dword [esp + 0x1320]
mov dword [esp + 0x94], ebp
lea eax, [eax + esi + 0x3674]
mov esi, 1
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x1320]
mov dword [esp + 0x70], esi
lea esi, [esp + 0x200]
lea eax, [eax + edi + 0x3674]
lea edi, [esp + 0x280]
mov ebp, edi
mov edi, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x94]
movsx edx, word [eax + edi*2]
test edx, edx
jne 0xaad991
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0x70]
movzx eax, byte [eax + edi]
movzx eax, word [eax + eax + 0xdf8be0]
imul dword [esp + 0x60]
shrd eax, edx, 4
shr edx, 4
sub dword [esi], eax
mov eax, ebx
sbb dword [esi + 4], edx
mov edx, dword [esi + 0x18]
shl eax, 2
mov dword [esi + 0x18], ebx
mov dword [esp + eax + 0x300], edx
mov edx, dword [esi + 0x28]
mov dword [esp + eax + 0x304], edx
mov edx, ebx
inc edx
mov dword [esi + 0x28], edx
mov edx, dword [esi + 0x38]
mov dword [esp + eax + 0x308], edx
mov edx, ebx
lea eax, [ebx + 2]
add edx, 3
mov dword [esi + 0x38], eax
mov dword [esp + 0x70], edx
dec edi
cmp dword [esp + 0x98], edi
jle 0xaad0dc
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x14]
lea ecx, [esi + 0x10]
mov ebx, dword [esi + 0x10]
cmp edi, edx
ja 0xaae783
jb 0xaad17b
cmp ebx, eax
jae 0xaae783
mov eax, ebx
mov edx, edi
mov ebp, dword [esi + 0x24]
lea edi, [esi + 0x20]
mov ebx, dword [esi + 0x20]
cmp ebp, edx
ja 0xaad198
jb 0xaad192
cmp ebx, eax
jae 0xaad198
mov eax, ebx
mov edx, ebp
mov ecx, edi
cmp dword [esi + 0x34], edx
lea ebx, [esi + 0x30]
ja 0xaad1a9
jb 0xaad1a7
cmp dword [esi + 0x30], eax
jae 0xaad1a9
mov ecx, ebx
cmp esi, ecx
je 0xaae78a
mov edi, dword [esp + 0xa4]
cmp dword [esp + 0x98], edi
jg 0xaad928
mov ebx, dword [ecx + 8]
mov ebp, dword [esp + 0x1324]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
movzx eax, byte [eax + ecx]
inc ecx
lea esi, [ebp + eax*2]
movzx eax, word [esp + ebx*4 + 0x302]
movsx edx, word [esi]
movzx ebx, word [esp + ebx*4 + 0x300]
mov edi, edx
sar edi, 0x1f
xor eax, edi
shr edx, 0x1f
add eax, edx
cmp dword [esp + 0xa4], ecx
mov word [esi], ax
jge 0xaad1d6
jmp 0xaad928
mov dword [esp + 0x50], ebx
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x48]
mov eax, esi
mov ecx, dword [esp + 0x98]
xor edx, edx
and eax, 0x7f
xor esi, esi
movzx eax, byte [eax + 0xdfcc00]
lea ebp, [esp + 0x180]
mov dword [esp + 0x78], edx
lea edx, [esp + 0x300]
lea edi, [ecx + ecx]
mov dword [esp + 0xb8], edi
lea edi, [esp + edi + 0x200]
mov byte [esp + 0xbc], al
mov eax, dword [esp + 0x132c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x70], edx
mov dword [esp + 0x48], ecx
shl eax, 6
add eax, ebx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x133c]
mov dword [esp + 0x58], edi
mov dword [esp + 0x68], ebp
and eax, 0xf
shl eax, 4
mov dword [esp + 0xb0], eax
jmp 0xaad453
add ebx, 0x4000
mov edi, ebx
sar edi, 0x10
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0xa8]
lea ebp, [ecx*4]
mov dword [esp + 0xa4], ecx
lea ecx, [esi - 1]
mov dword [esp + 0x90], ecx
mov ebx, dword [edi + ebp]
mov dword [esp + 0x8c], ebx
imul ebx, esi
mov ecx, dword [esp + 0x8c]
lea edi, [ebx + 0x80]
sub ebx, ecx
sub ebx, 0xffffff80
sar ebx, 8
mov ecx, ebx
mov ebx, eax
sar edi, 8
sub eax, ecx
sub ebx, edi
imul ebx, ebx
imul eax, eax
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x48]
sub eax, ebx
mov ebx, dword [ebp + 0xdf8720]
imul ebx, eax
mov eax, dword [esp + 0x70]
mov dword [eax + ecx*4], ebx
mov ecx, dword [esp + 0x1320]
mov dword [esp + 0x94], ebx
mov ebx, dword [ecx + 0x48e0]
mov eax, ebx
mov ebx, dword [esp + 0x1338]
mov dword [esp + 0x9c], eax
test ebx, ebx
sete bl
test eax, eax
setne al
test bl, al
je 0xaad3f7
mov eax, dword [esp + 0x48]
test eax, eax
je 0xaad3f7
mov ebx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xb0]
lea eax, [ebx + ecx + 0x2e78]
mov ecx, dword [esp + 0x1320]
mov ebx, dword [esp + 0x8c]
movsx eax, word [ecx + eax*2]
mov ecx, eax
mov eax, dword [esp + 0x84]
sub ecx, eax
mov eax, dword [esp + 0x80]
imul ebx, eax
lea eax, [ebx + ecx]
mov ebx, eax
sar ebx, 0x1f
xor eax, ebx
sub eax, ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x80]
imul eax, edi
add eax, ecx
mov ecx, dword [esp + 0x84]
mov edi, eax
sar edi, 0x1f
xor eax, edi
sub eax, edi
mov edi, dword [esp + 0x70]
sub ecx, eax
mov eax, dword [esp + 0x9c]
imul eax, ecx
mov ecx, dword [ebp + 0xdf8760]
imul eax, ecx
mov ecx, dword [esp + 0x48]
add eax, ebx
mov dword [edi + ecx*4], eax
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x58]
imul eax, edi
cmp esi, dword [esp + 0x88]
cwde
mov word [ebx], ax
je 0xaad4f0
mov edi, dword [esp + 0x68]
mov edx, eax
mov esi, dword [esp + 0x48]
mov word [edi + esi*2], ax
xor eax, eax
test edx, edx
mov edx, dword [esp + 0x48]
setne al
mov esi, dword [esp + 0x50]
add dword [esp + 0x58], 2
mov cl, dl
shl eax, cl
or dword [esp + 0x78], eax
mov eax, edx
inc eax
cmp eax, esi
mov dword [esp + 0x48], eax
jg 0xaad505
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x1324]
movzx eax, byte [eax + edi]
lea edx, [eax + eax]
mov ecx, eax
movsx eax, word [esi + edx]
mov esi, dword [esp + 0x74]
mov ebp, eax
sar ebp, 0x1f
mov ebx, ebp
and ebx, 0xfffe
inc ebx
mov edi, ebx
mov dword [esp + 0x60], ebx
movzx ebx, word [esi + edx]
mov edx, edi
mov dword [esp + 0x84], eax
xor eax, ebp
mov edi, dword [esp + 0x58]
sub eax, ebp
or ebp, 1
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0x68]
imul ebx, eax
lea esi, [ebx + 0x8000]
sar esi, 0x10
imul edx, esi
test esi, esi
movsx edx, dx
mov word [edi], dx
mov word [edi + 0x20], dx
mov edi, dword [esp + 0x48]
mov word [ebp + edi*2], dx
jne 0xaad2a0
mov eax, dword [esp + 0x70]
mov dword [eax + edi*4], 0
jmp 0xaad428
movzx ecx, byte [esp + 0x48]
mov eax, 1
shl eax, cl
or dword [esp + 0x7c], eax
jmp 0xaad428
mov ebx, dword [esp + 0x78]
xor ecx, ecx
movzx eax, byte [esp + 0xbc]
mov edi, dword [esp + 0x1320]
mov ebp, dword [esp + 0x68]
test ebx, ebx
mov dword [esp + 0x80], eax
mov dword [edi + 0x604], ecx
jne 0xaad939
movzx ebx, byte [eax + eax + 0xdfbb21]
mov dword [edi + 0x604], ebx
mov eax, dword [esp + 0xb4]
shl eax, 4
mov edi, eax
mov dword [esp + 0x84], eax
mov eax, ebx
imul edi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x6c], edx
add eax, ebp
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x78]
lea esi, [esi]
lea edi, [edi]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x7c]
xor edi, edi
mov edx, 0xffffffff
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x48], eax
jmp 0xaad633
mov edx, eax
mov eax, dword [esp + 0x80]
movzx eax, byte [eax + eax + 0xdfbb21]
mov dword [edx + 0x604], eax
imul dword [esp + 0x84]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
add eax, dword [esp + 0x60]
adc edx, dword [esp + 0x64]
mov word [ebp + esi*2], cx
cmp edx, dword [esp + 0x6c]
jl 0xaad5f5
jg 0xaad621
cmp eax, dword [esp + 0x68]
jae 0xaad621
mov esi, dword [esp + 0x74]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x68], eax
mov dword [esp + 0x94], esi
mov dword [esp + 0x88], edi
mov dword [esp + 0x6c], edx
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x50]
jg 0xaad6f4
mov ebx, dword [esp + 0x70]
mov ebx, dword [ebx + eax*4]
test ebx, ebx
je 0xaad621
mov esi, dword [esp + 0x7c]
mov cl, al
mov edx, 1
shl edx, cl
mov edi, eax
xor esi, edx
not edx
mov dword [esp + 0x74], esi
sar esi, cl
mov eax, esi
movsx esi, word [ebp + edi*2]
and eax, 1
mov ecx, eax
shl ecx, 4
add ecx, edi
mov dword [esp + 0x58], esi
movsx esi, word [esp + ecx*2 + 0x200]
mov ecx, dword [esp + 0x78]
and edx, ecx
test esi, esi
setne cl
neg eax
or eax, 1
movzx edi, cl
movzx ecx, byte [esp + 0x48]
imul ebx, eax
mov eax, dword [esp + 0x48]
shl edi, cl
mov word [ebp + eax*2], si
mov eax, dword [esp + 0x1320]
mov ecx, ebx
sar ecx, 0x1f
xor esi, esi
or edi, edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ecx
mov dword [eax + 0x604], esi
je 0xaad5b4
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x1330]
mov dword [esp], eax
mov eax, dword [esp + 0x1320]
call fcn.00a9c150
mov eax, dword [esp + 0x1320]
mov eax, dword [eax + 0x604]
jmp 0xaad5cb
mov ecx, dword [esp + 0x88]
cmp ecx, 0xffffffff
je 0xaad750
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x94]
cdq
sub dword [esp + 0x68], eax
mov eax, edi
mov dword [esp + 0x7c], edi
sbb dword [esp + 0x6c], edx
sar eax, cl
and eax, 1
shl eax, 4
add eax, ecx
movzx eax, word [esp + eax*2 + 0x200]
mov word [esp + ecx*2 + 0x180], ax
xor eax, eax
mov dword [esp + ecx*4 + 0x300], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x78], eax
jmp 0xaad580
mov eax, dword [esp + 0x78]
test eax, eax
je 0xaacdf1
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0xa0]
mov esi, dword [esp + 0x1324]
movzx edx, word [esp + edi*2 + 0x180]
movzx eax, byte [ebx + edi]
mov word [esi + eax*2], dx
mov eax, edi
inc eax
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 2
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 3
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 4
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 5
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 6
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 7
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 8
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 9
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 0xa
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 0xb
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 0xc
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 0xd
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
add eax, 0xe
cmp eax, 0x10
je 0xaad928
movzx edx, byte [ebx + eax]
movzx eax, word [esp + eax*2 + 0x180]
mov word [esi + edx*2], ax
mov eax, edi
dec eax
je 0xaad928
movzx eax, byte [ebx + 0xf]
movzx edx, word [esp + 0x19e]
mov word [esi + eax*2], dx
mov eax, 1
mov dword [esp + 0xac], eax
jmp 0xaace4d
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x1330]
lea ecx, [ebp + eax]
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x1320]
call fcn.00a9c150
mov eax, dword [esp + 0x1320]
mov ebx, dword [eax + 0x604]
jmp 0xaad541
mov word [eax], 0
sub ecx, 2
add eax, 2
jmp 0xaace0d
mov byte [eax], 0
mov ecx, 0x1f
inc eax
jmp 0xaace05
mov eax, dword [esp + 0x74]
mov dword [ebp], 0xffffffff
mov dword [ebp + 4], 0xffffffff
mov dword [ebp + 0x10], 0xffffffff
movzx eax, byte [eax + edi]
mov dword [ebp + 0x14], 0xffffffff
mov dword [ebp + 0x20], 0xffffffff
mov dword [ebp + 0x24], 0xffffffff
movsx ebx, word [esp + eax*2 + 0x100]
mov dword [esp + 0x48], eax
mov dword [ebp + 0x30], 0xffffffff
mov dword [ebp + 0x34], 0xffffffff
mov eax, ebx
sar eax, 0x1f
mov ecx, eax
xor ecx, ebx
sub ecx, eax
mov eax, edx
sar eax, 0x1f
xor edx, eax
sub edx, eax
cmp edi, 0xe
mov dword [esp + 0x50], ecx
mov dword [esp + 0x78], edx
mov dword [ebp + 0x40], 0xffffffff
mov dword [ebp + 0x44], 0xffffffff
mov dword [ebp + 0x50], 0xffffffff
mov dword [ebp + 0x54], 0xffffffff
mov dword [ebp + 0x60], 0xffffffff
mov dword [ebp + 0x64], 0xffffffff
mov dword [ebp + 0x70], 0xffffffff
mov dword [ebp + 0x74], 0xffffffff
jg 0xaae5b0
mov eax, dword [esp + 0xb4]
movzx eax, byte [eax + edi]
mov edx, eax
movzx eax, word [eax + eax + 0xdf8be0]
mov dword [esp + 0x8c], eax
mov dword [esp + 0xe4], eax
mov al, dl
xor al, 1
movzx eax, al
movzx edx, word [eax + eax + 0xdf8be0]
mov eax, dword [esp + 0xb8]
movzx eax, byte [eax + edi]
mov cl, al
movzx eax, word [eax + eax + 0xdf8be0]
add eax, edx
mov dword [esp + 0xe8], eax
mov al, cl
xor al, 1
movzx eax, al
movzx eax, word [eax + eax + 0xdf8be0]
add eax, edx
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x48]
dec eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x9c], eax
shl edx, 2
mov ecx, dword [ecx + edx]
imul eax, ecx
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x80], eax
sub eax, 0xffffff80
sar eax, 8
sub ecx, eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1320]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1338]
mov eax, dword [eax + 0x48e0]
test ecx, ecx
sete byte [esp + 0xa8]
test eax, eax
mov dword [esp + 0x90], eax
setne al
test byte [esp + 0xa8], al
je 0xaae48b
test edi, edi
je 0xaae48b
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x48]
shl eax, 4
lea eax, [eax + ecx + 0x2e78]
mov ecx, dword [esp + 0x1320]
movsx eax, word [ecx + eax*2]
sub eax, ebx
mov ecx, eax
mov eax, ebx
sar eax, 0x1f
xor eax, ecx
shr ebx, 0x1f
add eax, ebx
mov ebx, dword [edx + 0xdf8760]
mov ecx, eax
mov eax, dword [esp + 0x90]
imul eax, ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x90], eax
mov eax, dword [edx + 0xdf8720]
mov dword [esp + 0x48], eax
mov eax, ebx
imul ebx
mov ebx, dword [esp + 0x48]
imul ebx, edx
mul dword [esp + 0x48]
mov dword [esp + 0x5c], edx
add dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], ecx
add ebx, ecx
mov ecx, dword [esp + 0x58]
mov eax, ebx
mov ebx, dword [esp + 0x5c]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x90]
imul eax, edx
cdq
sub ecx, eax
sbb ebx, edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x58], ecx
lea eax, [ebx + edx + 0x80]
mov ebx, eax
mov eax, dword [esp + 0x50]
sar ebx, 8
mov dword [esp + 0x50], ebx
sub eax, ebx
mov ebx, dword [esp + 0x48]
imul eax
imul ebx, edx
mul dword [esp + 0x48]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x7c]
mov ecx, eax
mov eax, dword [esp + 0x68]
add ebx, edx
mov edx, dword [esp + 0x50]
add eax, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x90]
imul eax, edx
cdq
sub ecx, eax
sbb ebx, edx
mov eax, ecx
mov edx, ebx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ebx
mov eax, dword [esp + 0x78]
cmp eax, 1
je 0xaae6a2
cmp eax, 2
mov ebx, edi
mov edi, ebp
mov ebp, dword [esp + 0x94]
jne 0xaae5db
mov edx, dword [esp + 0x70]
lea eax, [esp + 0xf0]
mov dword [esp + 0xbc], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edx
lea edx, [esp + 0xe4]
mov dword [esp + 0xac], edx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x5c]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x300]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0xc], edi
mov dword [esp + 0x70], ecx
call fcn.00a90700
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, 2
mov dword [esp + 4], edx
mov edx, dword [esp + 0x48]
call fcn.00a948c0
mov ecx, eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xd8], ebp
mov ebp, edi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x50], esi
dec eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x88], ecx
shl eax, 4
mov dword [esp + 0xdc], eax
jmp 0xaaddf3
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0xbc]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ebx
mov dword [esp + 4], ebp
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xac]
call fcn.00a94370
mov ecx, 9
mov edx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x18], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0x14], edx
mov edx, esi
mov dword [esp + 0xc], ecx
mov ecx, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, 2
call fcn.00a94cd0
mov dword [esp + 0x88], eax
mov eax, ebp
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x50], eax
dec dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x98], eax
mov ebx, eax
jg 0xaae3e5
movsx eax, word [esp + eax*2 + 0x180]
test eax, eax
jne 0xaadf51
mov eax, dword [ebp + 0x18]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x68]
mov esi, eax
mov eax, dword [ebp + 0x78]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
lea edx, [edi + eax*4]
mov ecx, eax
mov eax, dword [esp + 0x7c]
dec ebx
mov edi, dword [esp + 0x80]
mov dword [edx + 0x14], esi
mov esi, dword [esp + 0x48]
mov dword [ebp + 0x18], ecx
mov dword [edx], eax
lea eax, [ecx + 1]
mov dword [esp + 0x8c], eax
mov dword [ebp + 0x28], eax
lea eax, [ecx + 2]
mov dword [esp + 0x90], eax
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [edx + 4], edi
mov edi, dword [esp + 0x78]
mov dword [edx + 0x18], esi
mov dword [edx + 0xc], eax
lea eax, [ecx + 4]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x58]
mov dword [edx + 8], edi
lea edi, [ecx + 3]
mov dword [ebp + 0x48], edi
mov dword [edx + 0x10], eax
lea eax, [ecx + 4]
mov dword [ebp + 0x58], eax
lea eax, [ecx + 5]
mov dword [esp + 0xa0], eax
mov dword [ebp + 0x68], eax
lea eax, [ecx + 6]
add ecx, 7
cmp ebx, dword [esp + 0xcc]
mov dword [esp + 0x9c], eax
mov dword [ebp + 0x78], eax
je 0xaae3e5
mov esi, dword [esp + 0x88]
add edx, 0x1c
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x8c]
movsx eax, word [eax + ebx*2]
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x90]
test eax, eax
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x94]
mov dword [esp + 0x58], esi
mov esi, edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x48], edi
je 0xaade5c
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x74]
movzx edi, byte [edi + ebx]
mov dword [esp + 0x78], edi
movsx edi, word [esp + edi*2 + 0x100]
mov ebx, edi
sar ebx, 0x1f
mov edx, ebx
xor edx, edi
mov esi, edx
cdq
xor eax, edx
sub esi, ebx
sub eax, edx
mov dword [esp + 0xa0], edi
mov edi, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x8c], esi
mov dword [eax + 0x10], 0xffffffff
mov dword [eax + 0x14], 0xffffffff
mov dword [eax + 0x20], 0xffffffff
mov dword [eax + 0x24], 0xffffffff
mov dword [eax + 0x30], 0xffffffff
mov dword [eax + 0x34], 0xffffffff
mov dword [eax + 0x40], 0xffffffff
mov dword [eax + 0x44], 0xffffffff
mov dword [eax + 0x50], 0xffffffff
mov dword [eax + 0x54], 0xffffffff
mov dword [eax + 0x60], 0xffffffff
mov dword [eax + 0x64], 0xffffffff
mov dword [eax + 0x70], 0xffffffff
mov dword [eax + 0x74], 0xffffffff
mov eax, dword [esp + 0xb4]
movzx edx, byte [eax + ebx]
mov eax, edx
movzx edx, word [edx + edx + 0xdf8be0]
xor al, 1
movzx eax, al
mov dword [esp + 0xc4], edx
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0xb8]
movzx edx, byte [edx + ebx]
movzx edx, word [edx + edx + 0xdf8be0]
movzx eax, word [eax + eax + 0xdf8be0]
add eax, edx
mov dword [esp + 0xe8], eax
mov eax, edi
mov edi, dword [esp + 0x78]
dec eax
mov dword [esp + 0xc0], eax
lea edx, [edi*4]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x7c], edx
mov edi, dword [edi + edx]
imul eax, edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x9c], eax
sub eax, 0xffffff80
sar eax, 8
mov edi, eax
mov dword [esp + 0x68], eax
mov eax, esi
sub eax, edi
mov edi, dword [esp + 0x1320]
test ebx, ebx
setne byte [esp + 0x58]
movzx ebx, byte [esp + 0x58]
mov edi, dword [edi + 0x48e0]
test edi, edi
setne dl
test byte [esp + 0xa8], dl
mov dword [esp + 0x80], edi
je 0xaae2e8
test bl, bl
je 0xaae2e8
mov ecx, dword [esp + 0x7c]
imul eax
xor edi, edi
mov esi, dword [ecx + 0xdf8720]
mov ebx, edx
mov ecx, dword [ecx + 0xdf8760]
mul esi
imul ebx, esi
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x78]
add dword [esp + 0xd4], ebx
mov ebx, dword [esp + 0xa0]
lea eax, [eax + edx + 0x2e78]
mov edx, dword [esp + 0x1320]
movsx eax, word [edx + eax*2]
mov edx, dword [esp + 0xc8]
sub eax, ebx
xor edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x68]
shr eax, 0x1f
add eax, edx
add eax, ebx
mov ebx, dword [esp + 0xd4]
cdq
xor eax, edx
sub eax, edx
mov edx, eax
mov eax, dword [esp + 0x80]
imul eax, ecx
mov ecx, dword [esp + 0xd0]
imul eax, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x94]
sbb ebx, edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ebx
lea eax, [eax + edx + 0x80]
mov edx, dword [esp + 0x8c]
sar eax, 8
mov dword [esp + 0x94], eax
sub edx, eax
mov eax, edx
cmp byte [esp + 0xa8], 0
je 0xaae342
cmp byte [esp + 0x58], 0
je 0xaae342
imul eax
mov ecx, edi
imul ecx, eax
mov ebx, edx
mul esi
imul ebx, esi
mov edi, edx
mov esi, eax
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0x78]
add ecx, ebx
mov ebx, dword [esp + 0xa0]
add edi, ecx
lea eax, [eax + edx + 0x2e78]
mov edx, dword [esp + 0x1320]
movsx eax, word [edx + eax*2]
sub eax, ebx
mov edx, eax
mov eax, ebx
sar eax, 0x1f
xor edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x94]
shr eax, 0x1f
add eax, edx
add eax, ebx
mov ebx, dword [esp + 0x7c]
cdq
xor eax, edx
sub eax, edx
mov edx, eax
mov ecx, dword [ebx + 0xdf8760]
mov eax, dword [esp + 0x80]
imul eax, ecx
imul eax, edx
cdq
sub esi, eax
mov eax, dword [esp + 0x90]
sbb edi, edx
cmp eax, 1
je 0xaae368
cmp eax, 2
je 0xaadd58
mov eax, 9
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], ebp
call fcn.00a94cd0
mov edx, 9
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x18], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov ecx, edi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp], edx
mov edx, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x90]
call fcn.00a94cd0
mov dword [esp + 0x88], eax
jmp 0xaadde9
mov esi, dword [esp + 0x7c]
imul eax
xor edi, edi
mov esi, dword [esi + 0xdf8720]
mov ebx, edx
mul esi
imul ebx, esi
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x94]
add dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x80]
lea eax, [eax + edx + 0x80]
sar eax, 8
mov edx, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x8c]
sub eax, edx
test ebx, ebx
jne 0xaae192
imul eax
mov ebx, edi
imul ebx, eax
mov ecx, edx
mul esi
imul ecx, esi
mov esi, eax
mov eax, dword [esp + 0x90]
mov edi, edx
add ecx, ebx
add edi, ecx
cmp eax, 1
jne 0xaae233
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x70]
imul ebx
shrd eax, edx, 4
shr edx, 4
sub esi, eax
mov eax, dword [esp + 0x88]
sbb edi, edx
mov edx, ebp
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call fcn.00a94280
mov edx, edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x10], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0x50]
mov ecx, eax
mov eax, esi
mov esi, dword [esp + 0xbc]
sub eax, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xac]
sbb edx, dword [esp + 0x6c]
mov dword [esp + 0x14], esi
mov dword [esp], edi
call fcn.00a94370
mov dword [esp + 0x88], eax
jmp 0xaadde9
mov edi, ebp
mov edx, dword [ebp + 0x14]
mov esi, dword [edi + 0x24]
lea ecx, [ebp + 0x10]
mov eax, dword [ebp + 0x10]
lea ebp, [ebp + 0x20]
mov ebx, dword [edi + 0x20]
cmp esi, edx
ja 0xaae409
jb 0xaae403
cmp ebx, eax
jae 0xaae409
mov eax, ebx
mov edx, esi
mov ecx, ebp
mov esi, dword [edi + 0x34]
lea ebp, [edi + 0x30]
mov ebx, dword [edi + 0x30]
cmp esi, edx
ja 0xaae422
jb 0xaae41c
cmp ebx, eax
jae 0xaae422
mov eax, ebx
mov edx, esi
mov ecx, ebp
mov esi, dword [edi + 0x44]
lea ebp, [edi + 0x40]
mov ebx, dword [edi + 0x40]
cmp esi, edx
ja 0xaae43b
jb 0xaae435
cmp ebx, eax
jae 0xaae43b
mov eax, ebx
mov edx, esi
mov ecx, ebp
mov esi, dword [edi + 0x54]
lea ebp, [edi + 0x50]
mov ebx, dword [edi + 0x50]
cmp esi, edx
ja 0xaae454
jb 0xaae44e
cmp ebx, eax
jae 0xaae454
mov eax, ebx
mov edx, esi
mov ecx, ebp
mov esi, dword [edi + 0x64]
lea ebp, [edi + 0x60]
mov ebx, dword [edi + 0x60]
cmp esi, edx
ja 0xaae46d
jb 0xaae467
cmp ebx, eax
jae 0xaae46d
mov eax, ebx
mov edx, esi
mov ecx, ebp
cmp dword [edi + 0x74], edx
lea ebx, [edi + 0x70]
ja 0xaad1c5
jb 0xaae484
cmp dword [edi + 0x70], eax
jae 0xaad1c5
mov ecx, ebx
jmp 0xaad1c5
mov ecx, dword [esp + 0x58]
mov eax, dword [edx + 0xdf8720]
xor edx, edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
mov eax, ecx
imul ecx
mov ecx, dword [esp + 0x48]
imul ecx, edx
mul dword [esp + 0x48]
mov dword [esp + 0x5c], edx
add dword [esp + 0x5c], ecx
test edi, edi
mov dword [esp + 0x58], eax
je 0xaae813
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x48]
lea eax, [eax + edx + 0x80]
mov edx, dword [esp + 0x50]
sar eax, 8
sub edx, eax
mov eax, edx
imul edx
imul ecx, edx
mul dword [esp + 0x48]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
add dword [esp + 0x54], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
jmp 0xaadc3e
mov eax, dword [esp + 0x1320]
movsx ebx, word [esp + 0x180]
movsx ebp, word [esp + 0x100]
movzx eax, byte [eax + esi + 0x3674]
xor al, 1
movzx eax, al
movzx ecx, word [eax + eax + 0xdf8be0]
mov eax, dword [esp + 0x1320]
movzx eax, byte [eax + edi + 0x3674]
mov dword [esp + 8], edx
mov edx, ebx
xor al, 1
movzx eax, al
movzx eax, word [eax + eax + 0xdf8be0]
add eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [0xdf8720]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax]
mov eax, ebp
call fcn.00a90360
mov edi, dword [esp + 0x1324]
cwde
test eax, eax
mov word [edi], ax
setne al
movzx eax, al
mov dword [esp + 0xac], eax
jmp 0xaace4d
xor eax, eax
mov dword [esp + 0xec], eax
xor eax, eax
mov dword [esp + 0xe8], eax
xor eax, eax
mov dword [esp + 0xe4], eax
xor eax, eax
mov dword [esp + 0x8c], eax
mov eax, edx
jmp 0xaadaa6
mov edx, dword [esp + 0x70]
lea eax, [esp + 0xf0]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xbc], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], edx
lea edx, [esp + 0xe4]
mov dword [esp + 0xac], edx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x300]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
call fcn.00a948c0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x48]
call fcn.00a948c0
mov ecx, eax
jmp 0xaadd1b
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x6c]
mov dword [esp], esi
imul ebx
shrd eax, edx, 4
shr edx, 4
add eax, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x68]
sub edx, dword [esp + 0x58]
sbb ecx, dword [esp + 0x5c]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x300]
mov dword [esp + 4], ecx
mov ecx, ebp
call fcn.00a90620
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebp
mov ecx, eax
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x58]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0xe4]
sbb edx, dword [esp + 0x5c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x58]
mov dword [esp + 0x4c], edx
lea edx, [esp + 0xf0]
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], edx
lea edx, [esp + 0x300]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
sbb ebx, dword [esp + 0x5c]
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.00a90700
mov dword [esp + 0x70], eax
mov eax, esi
mov esi, ebp
mov ebp, eax
jmp 0xaad151
mov edi, 0xf
mov dword [esp + 0x50], edi
jmp 0xaad21f
mov ecx, esi
jmp 0xaad17f
mov eax, dword [esp + 0x1324]
mov edx, 0x20
test al, 1
je 0xaae7a3
mov byte [eax], 0
mov edx, 0x1f
inc eax
test al, 2
je 0xaae7b2
mov word [eax], 0
sub edx, 2
add eax, 2
mov ebx, edx
xor ecx, ecx
and ebx, 0xfffffff8
xor edi, edi
mov dword [eax + ecx], 0
mov dword [eax + ecx + 4], edi
add ecx, 8
cmp ecx, ebx
jb 0xaae7b9
add eax, ecx
test dl, 4
je 0xaae7dd
mov dword [eax], 0
add eax, 4
test dl, 2
je 0xaae7ea
mov word [eax], 0
add eax, 2
test dl, 1
je 0xaae7f2
mov byte [eax], 0
xor esi, esi
mov dword [esp + 0xac], esi
jmp 0xaace4d
xor eax, eax
mov edx, 0x10000000
lea esi, [esp + 0x200]
jmp 0xaad160
mov edx, dword [esp + 0x68]
mov eax, ebx
mov ecx, ebx
sar eax, 0x1f
mov dword [esp + 0x90], eax
xor edx, eax
mov eax, edx
mov edx, ebx
shr edx, 0x1f
lea eax, [eax + edx + 8]
and eax, 0xfffffff0
sub ecx, eax
mov eax, ecx
mov dword [esp + 0xa0], edx
imul ecx
mov ecx, dword [esp + 0x48]
imul ecx, edx
mul dword [esp + 0x48]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x80]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x7c]
lea eax, [ecx + eax + 0x80]
mov ecx, eax
mov eax, dword [esp + 0x50]
sar ecx, 8
mov dword [esp + 0x7c], ecx
sub eax, ecx
mov ecx, dword [esp + 0x48]
imul eax
imul ecx, edx
mul dword [esp + 0x48]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x90]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x48]
xor eax, edx
mov edx, dword [esp + 0xa0]
lea eax, [edx + eax + 8]
and eax, 0xfffffff0
sub ebx, eax
mov eax, ebx
imul ebx
imul ecx, edx
mul dword [esp + 0x48]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
add dword [esp + 0x4c], ecx
jmp 0xaadc3e