Function at 0xaae8d0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov eax, 0x132c
push edi
push esi
push ebx
call fcn.00bd0e20
sub esp, eax
mov ebp, dword [esp + 0x1340]
mov eax, dword [esp + 0x1348]
mov edx, dword [esp + 0x134c]
mov ecx, dword [esp + 0x1354]
mov ebx, dword [ebp + 0x98]
test ebx, ebx
jne 0xaaf243
mov ebx, edx
shl ebx, 8
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0x135c]
shl edx, 7
mov dword [esp + 0xe8], edx
lea eax, [ebp + eax*4]
xor edx, edx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xdc], eax
shl ebx, 2
mov dword [esp + 0xfc], ebx
mov dword [esp + 0xc0], ebx
add ebx, 4
mov dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0x1358]
mov dword [esp + 0x1340], ebp
lea ebx, [ecx + ebx*2 + 0x1c2c]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0xec]
mov eax, dword [esp + 0x1340]
mov edi, dword [esp + 0xe8]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x1340]
mov eax, dword [eax + 0x48e4]
mov dword [esp + 0x58], eax
shl eax, 6
add eax, 0xdfcdc0
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xdc]
mov ebx, dword [eax + 0x6bc]
mov ebp, dword [eax + 0x6dc]
xor eax, eax
mov dword [esp + 0xb4], ebx
add edi, ebp
xor ebx, ebx
xor esi, esi
mov dword [esp + eax + 0x1a0], ebx
mov dword [esp + eax + 0x1a4], esi
add eax, 8
cmp eax, 0x20
jb 0xaae9cf
mov ecx, dword [esp + 0xc0]
mov ebx, dword [esp + 0x1340]
mov esi, dword [esp + 0x1344]
movzx eax, byte [ecx + 0xdfd060]
movzx edx, byte [ebx + eax + 0x6d4f]
mov dword [esp + 0xf0], eax
movzx eax, byte [ebx + eax + 0x6d48]
lea ebx, [edx + eax]
lea eax, [ebx + 1]
sar eax, 1
cmp ebx, 0x7f
cmovle ebx, eax
mov eax, ecx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xac]
and eax, 3
lea edx, [eax + 0x3c]
mov ebp, eax
mov dword [esp + 0xd0], eax
mov ecx, edx
mov dword [esp + 0xf8], edx
nop
movzx edx, byte [ebx + ecx]
add edx, edx
movsx eax, word [esi + edx]
movzx edx, word [edi + edx]
imul eax, edx
add eax, 0x7fff
cmp eax, 0xffff
ja 0xaaebab
sub ecx, 4
cmp ebp, ecx
jle 0xaaea50
mov esi, dword [esp + 0xac]
mov ebx, dword [esp + 0xd0]
mov edx, dword [esp + 0x1344]
movzx eax, byte [esi + ebx]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 4]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 8]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0xc]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x10]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x14]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x18]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x1c]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x20]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x24]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x28]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x2c]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x30]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x34]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x38]
mov word [edx + eax*2], 0
movzx eax, byte [esi + ebx + 0x3c]
mov word [edx + eax*2], 0
xor eax, eax
xor edx, edx
inc dword [esp + 0xc0]
or dword [esp + 0xcc], eax
mov ebx, dword [esp + 0x1340]
mov edi, dword [esp + 0xf0]
mov eax, dword [esp + 0xc0]
cmp eax, dword [esp + 0xe0]
mov byte [ebx + edi + 0x6d50], dl
jne 0xaae972
mov eax, dword [esp + 0xfc]
xor edx, edx
xor ecx, ecx
movzx eax, byte [eax + 0xdfd060]
mov word [ebx + eax + 0x6d50], dx
mov word [ebx + eax + 0x6d58], cx
mov eax, dword [esp + 0xcc]
add esp, 0x132c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0x58]
cmp edx, ecx
jg 0xaaea78
mov eax, ebx
xor ebp, ebp
and eax, 0x7f
movzx eax, byte [eax + 0xdfcc00]
sar ecx, 2
lea ebx, [ecx + 1]
mov dword [esp + 0x68], ecx
xor ecx, ecx
mov dword [esp + 0xa0], ebx
lea ebx, [esp + 0x320]
mov byte [esp + 0xf7], al
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x80], ebp
lea ebp, [esp + 0x1a0]
mov dword [esp + 0x88], ecx
xor ecx, ecx
mov dword [esp + 0x6c], edx
shl eax, 4
and eax, 0xc0
mov dword [esp + 0x60], ebx
mov dword [esp + 0xd8], eax
mov dword [esp + 0xa4], edi
mov dword [esp + 0x78], ebp
jmp 0xaaede5
add ebx, 0x4000
mov ebp, dword [esp + 0x70]
mov esi, ebx
sar esi, 0x10
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0xb4]
shl ebp, 2
mov dword [esp + 0x98], ebp
add esi, ebp
mov ebx, esi
mov esi, dword [esp + 0xc8]
mov ebp, dword [ebx + esi]
mov esi, dword [esp + 0x58]
imul esi, ebp
mov ebx, esi
lea esi, [esi + 0x80]
sub ebx, ebp
sar esi, 8
sub ebx, 0xffffff80
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x58]
sar ebx, 8
mov ebp, ebx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0xb8], ebp
dec esi
mov dword [esp + 0xb0], esi
mov esi, eax
sub eax, ebp
sub esi, ebx
mov ebx, esi
imul ebx, esi
imul eax, eax
sub eax, ebx
mov ebx, dword [esp + 0x98]
mov esi, dword [ebx + 0xdf8620]
imul esi, eax
mov ebp, esi
mov esi, dword [esp + 0x60]
mov dword [esi + ecx*4], ebp
mov esi, dword [esp + 0x1340]
mov esi, dword [esi + 0x48e0]
test esi, esi
mov dword [esp + 0xbc], esi
mov esi, dword [esp + 0x1358]
setne bl
test esi, esi
sete al
test bl, al
je 0xaaed94
mov eax, dword [esp + 0x6c]
test eax, eax
je 0xaaed94
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x94]
lea eax, [eax + esi + 0x2d78]
mov esi, dword [esp + 0x1340]
movsx eax, word [esi + eax*2]
mov esi, eax
mov eax, dword [esp + 0x90]
sub esi, ebx
mov ebx, dword [esp + 0xb8]
imul ebx, eax
lea eax, [ebx + esi]
mov ebx, eax
sar ebx, 0x1f
xor eax, ebx
sub eax, ebx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x90]
imul eax, ebx
add eax, esi
mov esi, dword [esp + 0x70]
mov ebx, eax
sar ebx, 0x1f
xor eax, ebx
sub eax, ebx
mov ebx, dword [esp + 0x98]
sub esi, eax
mov eax, dword [esp + 0xbc]
imul eax, esi
mov esi, dword [ebx + 0xdf87a0]
imul eax, esi
mov esi, dword [esp + 0x60]
add eax, ebp
mov dword [esi + ecx*4], eax
mov eax, dword [esp + 0xb0]
imul eax, edi
mov edi, dword [esp + 0xa8]
cmp dword [esp + 0x58], edi
cwde
mov word [esp + ecx*2 + 0x220], ax
je 0xaaee81
mov ebx, dword [esp + 0x78]
mov edx, eax
mov word [ebx + ecx*2], ax
xor eax, eax
test edx, edx
setne al
shl eax, cl
inc ecx
or dword [esp + 0x80], eax
add dword [esp + 0x6c], 4
cmp ecx, dword [esp + 0xa0]
je 0xaaee94
mov ebx, dword [esp + 0xac]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0xa4]
movzx eax, byte [ebx + eax]
mov ebx, dword [esp + 0x1344]
lea edx, [eax + eax]
movsx ebx, word [ebx + edx]
mov dword [esp + 0x70], eax
mov ebp, ebx
mov edi, ebx
sar ebp, 0x1f
mov dword [esp + 0x94], ebx
movzx ebx, word [esi + edx]
xor edi, ebp
mov eax, edi
mov edi, ebp
sub eax, ebp
and edi, 0xfffe
inc edi
or ebp, 1
imul ebx, eax
mov edx, edi
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x78]
lea esi, [ebx + 0x8000]
sar esi, 0x10
imul edx, esi
test esi, esi
mov dword [esp + 0x58], esi
movsx edx, dx
mov word [esp + ecx*2 + 0x220], dx
mov word [esp + ecx*2 + 0x240], dx
mov word [ebp + ecx*2], dx
jne 0xaaec32
mov eax, dword [esp + 0x60]
mov dword [eax + ecx*4], 0
jmp 0xaaedc2
mov eax, 1
shl eax, cl
or dword [esp + 0x88], eax
jmp 0xaaedc2
mov ecx, dword [esp + 0x80]
xor edx, edx
movzx eax, byte [esp + 0xf7]
mov ebx, dword [esp + 0x1340]
mov ebp, dword [esp + 0x78]
test ecx, ecx
mov dword [esp + 0x94], eax
mov dword [ebx + 0x604], edx
jne 0xaaf221
movzx edi, byte [eax + eax + 0xdfbb21]
mov dword [ebx + 0x604], edi
mov eax, dword [esp + 0xd4]
shl eax, 4
mov ebx, eax
mov dword [esp + 0x98], eax
mov eax, edi
imul ebx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x7c], edx
lea esi, [esi]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x88]
xor edi, edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa0], eax
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, 0xffffffff
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x58]
jmp 0xaaefc2
mov edx, eax
mov eax, dword [esp + 0x94]
movzx eax, byte [eax + eax + 0xdfbb21]
mov dword [edx + 0x604], eax
imul dword [esp + 0x98]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x6c]
add eax, dword [esp + 0x70]
adc edx, dword [esp + 0x74]
mov word [ebp + ecx*2], si
cmp edx, dword [esp + 0x7c]
jl 0xaaef81
jg 0xaaefb0
cmp eax, dword [esp + 0x78]
jae 0xaaefb0
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xa4], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x9c], edi
mov dword [esp + 0x7c], edx
inc dword [esp + 0x58]
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x68], eax
jl 0xaaf080
mov edi, dword [esp + 0x60]
mov ebx, dword [edi + eax*4]
test ebx, ebx
je 0xaaefb0
mov esi, dword [esp + 0x88]
mov cl, al
mov edx, 1
shl edx, cl
xor esi, edx
not edx
mov dword [esp + 0x90], esi
sar esi, cl
mov eax, esi
mov esi, dword [esp + 0x58]
and eax, 1
mov ecx, eax
shl ecx, 4
add ecx, esi
movsx edi, word [ebp + esi*2]
movsx esi, word [esp + ecx*2 + 0x220]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x6c], edi
and edx, ecx
test esi, esi
setne cl
neg eax
or eax, 1
movzx edi, cl
movzx ecx, byte [esp + 0x58]
imul ebx, eax
mov eax, dword [esp + 0x58]
shl edi, cl
mov word [ebp + eax*2], si
mov eax, dword [esp + 0x1340]
mov ecx, ebx
sar ecx, 0x1f
xor esi, esi
or edi, edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ecx
mov dword [eax + 0x604], esi
je 0xaaef40
mov ecx, dword [esp + 0x94]
mov edx, ebp
call fcn.00a9b5b0
mov eax, dword [esp + 0x1340]
mov eax, dword [eax + 0x604]
jmp 0xaaef57
mov ecx, dword [esp + 0x9c]
cmp ecx, 0xffffffff
je 0xaaf0e2
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xa0]
cdq
sub dword [esp + 0x78], eax
mov eax, esi
mov dword [esp + 0x88], esi
sbb dword [esp + 0x7c], edx
xor edi, edi
sar eax, cl
and eax, 1
shl eax, 4
add eax, ecx
movzx eax, word [esp + eax*2 + 0x220]
mov dword [esp + ecx*4 + 0x320], edi
mov word [esp + ecx*2 + 0x1a0], ax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x80], eax
jmp 0xaaef00
mov ebx, dword [esp + 0x80]
test ebx, ebx
je 0xaaea78
mov ebx, dword [esp + 0xac]
mov edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0x1344]
mov edx, dword [esp + 0x1a0]
movzx eax, byte [ebx + edi]
mov word [ecx + eax*2], dx
movzx edx, word [esp + 0x1a2]
movzx eax, byte [ebx + edi + 4]
mov word [ecx + eax*2], dx
mov edx, dword [esp + 0x1a4]
movzx eax, byte [ebx + edi + 8]
mov word [ecx + eax*2], dx
movzx edx, word [esp + 0x1a6]
movzx eax, byte [ebx + edi + 0xc]
mov word [ecx + eax*2], dx
mov edx, dword [esp + 0x1a8]
movzx eax, byte [ebx + edi + 0x10]
mov word [ecx + eax*2], dx
movzx edx, word [esp + 0x1aa]
movzx eax, byte [ebx + edi + 0x14]
mov word [ecx + eax*2], dx
mov edx, dword [esp + 0x1ac]
movzx eax, byte [ebx + edi + 0x18]
mov word [ecx + eax*2], dx
movzx edx, word [esp + 0x1ae]
movzx eax, byte [ebx + edi + 0x1c]
mov word [ecx + eax*2], dx
mov edx, dword [esp + 0x1b0]
movzx eax, byte [ebx + edi + 0x20]
mov word [ecx + eax*2], dx
movzx edx, word [esp + 0x1b2]
movzx eax, byte [ebx + edi + 0x24]
mov word [ecx + eax*2], dx
movzx eax, byte [ebx + edi + 0x28]
mov edx, dword [esp + 0x1b4]
mov word [ecx + eax*2], dx
movzx edx, word [esp + 0x1b6]
movzx eax, byte [ebx + edi + 0x2c]
mov word [ecx + eax*2], dx
mov edx, dword [esp + 0x1b8]
movzx eax, byte [ebx + edi + 0x30]
mov word [ecx + eax*2], dx
movzx edx, word [esp + 0x1ba]
movzx eax, byte [ebx + edi + 0x34]
mov word [ecx + eax*2], dx
mov edx, dword [esp + 0x1bc]
movzx eax, byte [ebx + edi + 0x38]
mov word [ecx + eax*2], dx
mov eax, ebx
mov ebx, dword [esp + 0xf8]
movzx edx, word [esp + 0x1be]
movzx eax, byte [eax + ebx]
mov word [ecx + eax*2], dx
mov dl, 1
mov eax, 1
jmp 0xaaeb40
mov ecx, eax
mov eax, dword [esp + 0x1340]
mov edx, ebp
call fcn.00a9b5b0
mov eax, dword [esp + 0x1340]
mov edi, dword [eax + 0x604]
jmp 0xaaeed3
mov ebx, dword [esp + 0x1358]
lea eax, [ebp + eax*4]
mov edi, dword [eax + 0x6bc]
mov dword [esp + 0x68], edx
lea ecx, [ecx + ebx*2 + 0x1c2c]
mov ebx, dword [ebp + ecx*4]
mov ecx, dword [eax + 0x71c]
mov dword [esp + 0x58], edi
mov edi, edx
mov edx, dword [eax + 0x6dc]
shl edi, 7
mov dword [esp + 0x6c], ebx
mov ebx, dword [ebp + 0x48e4]
add ecx, edi
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1350]
add edi, edx
mov eax, ebx
shl eax, 4
add eax, ecx
mov dword [esp + 0xa8], ebx
movzx esi, word [eax + eax + 0xdfcaa0]
movzx ebx, word [eax + eax + 0xdfcae0]
mov eax, pe_nt_image_headers32
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1344]
mov dword [esp + 4], eax
lea eax, [esp + 0x120]
mov dword [esp], eax
call dword [ebp + 0x9294]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1344]
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp], eax
call dword [ebp + 0x935c]
mov edx, dword [esp + 0x68]
test eax, eax
jne 0xaaf312
xor ebp, ebp
mov dword [esp + 0xcc], ebp
mov eax, dword [esp + 0xcc]
add esp, 0x132c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x1344]
shl edx, 8
mov edi, dword [esp + 0x58]
mov dword [esp + 4], eax
lea eax, [esp + 0x1a0]
add edx, edi
mov edi, eax
mov dword [esp], eax
mov dword [esp + 0x98], edx
mov dword [esp + 0xd4], eax
call dword [ebp + 0x9314]
mov eax, dword [esp + 0x1350]
mov dword [esp], edi
call dword [ebp + eax*4 + 0x939c]
mov edi, eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x1350]
test edi, edi
movzx edx, word [eax + eax + 0xdfca80]
lea eax, [ebp + edx + 0x3674]
je 0xaaffe1
mov ecx, dword [esp + 0xa8]
movzx edx, byte [ebp + edx + 0x3674]
shl ecx, 6
mov dword [esp + 0xcc], ecx
add ecx, 0xdfcdc0
mov dword [esp + 0x94], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x230], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x234], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x240], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x244], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x250], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x254], ecx
xor ecx, ecx
mov dword [esp + 0x220], ecx
mov ecx, 0x10000000
mov dword [esp + 0x224], ecx
xor ecx, ecx
mov dword [esp + 0x228], ecx
xor ecx, ecx
mov word [esp + 0x322], cx
xor ecx, ecx
mov word [esp + 0x320], cx
mov ecx, dword [eax]
mov byte [esp + 0x11c], dl
movzx edx, byte [eax + 4]
mov dword [esp + 0x110], ecx
mov ecx, dword [eax + 4]
mov byte [esp + 0x11d], dl
movzx edx, byte [eax + 8]
mov dword [esp + 0x114], ecx
movzx ecx, word [eax + 8]
movzx eax, byte [eax + 9]
mov byte [esp + 0x11e], dl
mov word [esp + 0x118], cx
mov byte [esp + 0x11f], al
mov eax, dword [esp + 0x135c]
and eax, 3
test edi, edi
mov dword [esp + 0xbc], eax
js 0xab03b5
lea eax, [ebp + ebx + 0x3674]
mov dword [esp + 0x9c], eax
lea eax, [ebp + esi + 0x3674]
mov esi, 1
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x78], esi
mov dword [esp + 0x1340], ebp
mov dword [esp + 0x68], eax
lea eax, [esp + 0x2a0]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x220]
mov esi, eax
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x68]
movsx eax, word [edx + ebx*2]
test eax, eax
jne 0xaaf570
mov edx, dword [esp + 0xcc]
movzx eax, byte [edx + ebx + 0xdfcb80]
mov ebx, dword [esp + 0x9c]
movzx eax, byte [ebx + eax]
movzx ebx, word [eax + eax + 0xdf8be0]
mov eax, ebx
mov ebx, dword [esp + 0x78]
imul dword [esp + 0x6c]
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 + 0x320], edx
mov edx, dword [esi + 0x28]
mov dword [esp + eax + 0x324], edx
lea edx, [ebx + 1]
mov dword [esi + 0x28], edx
mov edx, dword [esi + 0x38]
mov dword [esp + eax + 0x328], edx
lea eax, [ebx + 2]
add ebx, 3
mov dword [esi + 0x38], eax
mov dword [esp + 0x78], ebx
dec dword [esp + 0x68]
mov eax, dword [esp + 0x68]
inc eax
jne 0xaaf4c9
mov dword [esp + 0x58], esi
mov eax, dword [esi]
mov edi, esi
mov edx, dword [esi + 4]
jmp 0xab03c9
mov edx, dword [esp + 0x94]
mov edi, ebx
movzx edx, byte [edx + ebx]
movsx ebx, word [esp + edx*2 + 0x120]
mov ecx, ebx
mov ebp, ebx
sar ecx, 0x1f
xor ebx, ecx
sub ebx, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
cmp edi, 0x3e
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x70], ebx
mov ebx, edi
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
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
jle 0xab050f
xor eax, eax
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x108], eax
xor eax, eax
mov dword [esp + 0x104], eax
xor eax, eax
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0x98]
dec eax
mov ebx, eax
mov dword [esp + 0xd0], eax
lea eax, [edx*4]
mov edi, dword [edi + eax]
imul ebx, edi
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x1340]
lea ecx, [ebx + 0x80]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x70]
sar ecx, 8
mov dword [esp + 0xb4], ecx
mov edi, dword [edi + 0x48e0]
sub ebx, ecx
mov ecx, dword [esp + 0x1358]
test ecx, ecx
sete byte [esp + 0xb0]
test edi, edi
setne cl
test byte [esp + 0xb0], cl
je 0xab0066
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0xab0066
mov ecx, dword [esp + 0xbc]
shl ecx, 6
lea edx, [ecx + edx + 0x2d78]
mov ecx, dword [esp + 0x1340]
movsx edx, word [ecx + edx*2]
sub edx, ebp
mov ecx, edx
mov edx, ebp
sar edx, 0x1f
xor ecx, edx
mov edx, ebp
shr edx, 0x1f
add edx, ecx
mov ecx, dword [eax + 0xdf87a0]
mov eax, dword [eax + 0xdf8620]
mov dword [esp + 0x58], edx
xor edx, edx
mov ebp, edx
imul edi, ecx
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], edi
mov edi, eax
mov eax, ebx
imul ebx
mov ecx, edi
mov ebx, dword [esp + 0x58]
mov dword [esp + 0xc0], edi
imul ecx, edx
mul dword [esp + 0xc0]
mov ebp, edx
mov edi, eax
add ebp, ecx
mov ecx, dword [esp + 0xb4]
add ecx, ebx
mov eax, ecx
mov ecx, dword [esp + 0x88]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0xc8]
imul eax, edx
cdq
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x80], edi
lea eax, [ebp + ecx + 0x80]
mov ebp, eax
sar ebp, 8
mov ebx, ebp
mov ebp, dword [esp + 0x70]
sub ebp, ebx
mov eax, ebp
imul ebp
mov edi, eax
mov eax, dword [esp + 0xc0]
mov ecx, eax
imul ecx, edx
mul edi
mov ebp, edx
mov edx, dword [esp + 0x58]
mov edi, eax
add ebp, ecx
mov ecx, dword [esp + 0xc8]
lea eax, [edx + ebx]
mov ebx, dword [esp + 0x84]
cdq
xor eax, edx
sub eax, edx
imul eax, ecx
mov ecx, dword [esp + 0x80]
cdq
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], ebp
mov eax, dword [esp + 0xa4]
cmp eax, 1
je 0xab021a
cmp eax, 2
mov ebp, dword [esp + 0x1340]
mov dword [esp + 0x58], esi
jne 0xab02dd
lea eax, [esp + 0x110]
mov edx, dword [esp + 0x78]
mov edi, eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x320]
mov esi, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x104]
mov dword [esp + 0x78], eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], edx
mov edx, ebx
mov dword [esp], eax
mov eax, ecx
call fcn.00a90700
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x14], esi
mov dword [esp + 4], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, 2
call fcn.00a948c0
mov ebx, eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x1340], ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x70], ebx
shl eax, 6
add eax, 0xdfcb80
mov dword [esp + 0xec], eax
dec dword [esp + 0x68]
mov ebx, dword [esp + 0x68]
js 0xab0108
movsx eax, word [esp + ebx*2 + 0x1a0]
test eax, eax
jne 0xaafa48
mov edi, dword [ebp + 0x38]
mov ecx, dword [esp + 0x70]
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x28]
mov dword [esp + 0x60], edi
mov edi, dword [ebp + 0x48]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x68], edi
mov edi, dword [ebp + 0x58]
mov dword [esp + 0x80], edi
mov edi, dword [ebp + 0x68]
mov dword [esp + 0x88], edi
mov edi, dword [ebp + 0x78]
mov dword [esp + 0xa4], edi
mov edi, dword [esp + 0x90]
lea esi, [edi + ecx*4]
mov dword [esi + 4], edx
mov edx, dword [esp + 0x60]
dec ebx
mov dword [esi], eax
lea eax, [ecx + 2]
mov dword [esp + 0xac], eax
lea edi, [ecx + 1]
mov dword [ebp + 0x38], eax
lea eax, [ecx + 3]
mov dword [esi + 8], edx
mov edx, eax
mov dword [ebp + 0x48], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x68]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x28], edi
mov dword [esi + 0x10], edx
mov edx, dword [esp + 0x88]
mov dword [esi + 0xc], eax
lea eax, [ecx + 4]
mov dword [esp + 0x70], eax
mov dword [ebp + 0x58], eax
lea eax, [ecx + 5]
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x68], eax
mov dword [ebp + 0x68], eax
lea eax, [ecx + 6]
add ecx, 7
cmp ebx, 0xffffffff
mov dword [esp + 0x60], eax
mov dword [esi + 0x18], edx
mov dword [ebp + 0x78], eax
je 0xab0108
mov eax, dword [esp + 0xd4]
add esi, 0x1c
movsx eax, word [eax + ebx*2]
test eax, eax
jne 0xaafa40
mov eax, dword [esp + 0x60]
mov edx, edi
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc8], ecx
jmp 0xaaf961
mov dword [esp + 0x70], ecx
mov dword [esp + 0x68], ebx
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x94]
movzx ebx, byte [edx + esi]
mov dword [esp + 0x80], ebx
movsx ebx, word [esp + ebx*2 + 0x120]
mov edi, ebx
mov dword [esp + 0xc8], ebx
sar ebx, 0x1f
mov edx, ebx
mov ecx, ebx
xor edx, edi
mov edi, edx
cdq
xor eax, edx
sub edi, ecx
sub eax, edx
mov ecx, eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xe8], ebx
mov ebx, esi
mov dword [esp + 0xc0], edi
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
movzx eax, byte [esi + 0xdfcb40]
mov byte [esp + 0x60], al
mov eax, dword [esp + 0xec]
movzx eax, byte [eax + esi]
mov esi, dword [esp + 0x9c]
movzx edx, byte [esi + eax]
movzx esi, word [edx + edx + 0xdf8be0]
mov eax, edx
xor al, 1
movzx eax, al
mov dword [esp + 0xd8], esi
mov dword [esp + 0x104], esi
movzx edx, byte [esp + 0x60]
mov esi, dword [esp + 0xb8]
movzx eax, word [eax + eax + 0xdf8be0]
movzx edx, byte [esi + edx]
movzx edx, word [edx + edx + 0xdf8be0]
add eax, edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x108], eax
mov eax, ecx
mov ecx, dword [esp + 0x98]
dec eax
mov dword [esp + 0xdc], eax
shl edx, 2
mov dword [esp + 0xa8], edx
mov edx, dword [ecx + edx]
imul eax, edx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
sub eax, 0xffffff80
sar eax, 8
mov edx, eax
mov dword [esp + 0x88], eax
mov eax, edi
sub eax, edx
mov edx, dword [esp + 0x1340]
test ebx, ebx
setne byte [esp + 0x60]
movzx ecx, byte [esp + 0x60]
mov edx, dword [edx + 0x48e0]
test edx, edx
mov dword [esp + 0xac], edx
setne dl
test byte [esp + 0xb0], dl
je 0xaafe18
test cl, cl
je 0xaafe18
mov ecx, dword [esp + 0xa8]
imul eax
xor edi, edi
mov esi, dword [ecx + 0xdf8620]
mov ebx, edx
mov ecx, dword [ecx + 0xdf87a0]
mul esi
imul ebx, esi
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xbc]
add dword [esp + 0xe4], ebx
mov ebx, dword [esp + 0x80]
shl eax, 6
lea eax, [ebx + eax + 0x2d78]
mov ebx, dword [esp + 0x1340]
movsx eax, word [ebx + eax*2]
mov ebx, dword [esp + 0xc8]
sub eax, ebx
xor edx, eax
mov eax, ebx
mov ebx, dword [esp + 0xe4]
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x88]
add eax, edx
cdq
xor eax, edx
sub eax, edx
mov edx, eax
mov eax, dword [esp + 0xac]
imul eax, ecx
mov ecx, dword [esp + 0xe0]
imul eax, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0xcc]
sbb ebx, edx
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0x88], ecx
lea eax, [eax + ebx + 0x80]
mov ebx, dword [esp + 0xc0]
sar eax, 8
mov ecx, eax
sub ebx, eax
cmp byte [esp + 0xb0], 0
je 0xaafe77
cmp byte [esp + 0x60], 0
je 0xaafe77
mov eax, ebx
imul ebx
mov dword [esp + 0x60], eax
mov eax, edx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x60]
imul eax, esi
imul edx, edi
add edx, eax
mov eax, dword [esp + 0x60]
mov ebx, edx
mul esi
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0xbc]
add edi, ebx
mov ebx, dword [esp + 0x80]
shl eax, 6
lea eax, [ebx + eax + 0x2d78]
mov ebx, dword [esp + 0x1340]
movsx eax, word [ebx + eax*2]
mov ebx, dword [esp + 0xc8]
sub eax, ebx
mov edx, eax
mov eax, ebx
sar eax, 0x1f
xor edx, eax
mov eax, ebx
mov ebx, dword [esp + 0xa8]
shr eax, 0x1f
add eax, edx
add eax, ecx
cdq
mov ecx, dword [ebx + 0xdf87a0]
xor eax, edx
sub eax, edx
mov edx, eax
mov eax, dword [esp + 0xac]
imul eax, ecx
imul eax, edx
cdq
sub esi, eax
mov eax, dword [esp + 0xa4]
sbb edi, edx
cmp eax, 1
je 0xaafeb5
cmp eax, 2
jne 0xaaff35
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xb4]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x14], ebx
mov dword [esp + 4], ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x88]
call fcn.00a94370
mov edx, dword [esp + 0x90]
mov ecx, 9
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x1c], ecx
mov ecx, edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov edx, esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, 2
call fcn.00a94cd0
mov dword [esp + 0x70], eax
mov eax, ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x58], eax
jmp 0xaaf8fc
mov ebx, dword [esp + 0xa8]
imul eax
xor edi, edi
mov esi, dword [ebx + 0xdf8620]
mov ebx, edx
mul esi
imul ebx, esi
mov dword [esp + 0x8c], edx
add dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xcc]
lea eax, [eax + ebx + 0x80]
mov ebx, dword [esp + 0xc0]
sar eax, 8
mov ecx, eax
sub ebx, eax
mov eax, dword [esp + 0xac]
test eax, eax
jne 0xaafcba
mov eax, ebx
imul ebx
mov ecx, eax
mov ebx, edx
mov dword [esp + 0x60], ecx
mov eax, edx
mov edx, edi
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x60]
imul eax, esi
imul edx, ebx
add edx, eax
mov eax, dword [esp + 0x60]
mov ebx, edx
mul esi
mov esi, eax
mov eax, dword [esp + 0xa4]
mov edi, edx
add edi, ebx
cmp eax, 1
jne 0xaafd6f
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x90]
imul ebx
shrd eax, edx, 4
shr edx, 4
sub esi, eax
mov eax, dword [esp + 0x70]
sbb edi, edx
mov edx, ebp
mov dword [esp], eax
mov eax, dword [esp + 0x58]
call fcn.00a94280
mov edx, edi
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 4], ebp
mov dword [esp + 0x14], edi
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x58]
mov ecx, eax
mov eax, esi
sub eax, dword [esp + 0x88]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x78]
sbb edx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.00a94370
mov dword [esp + 0x70], eax
jmp 0xaafe09
mov eax, 9
mov edx, dword [esp + 0x90]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov dword [esp], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x18], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xdc]
call fcn.00a94cd0
mov edx, 9
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 8], ebp
mov dword [esp], ecx
mov ecx, edi
mov dword [esp + 0xc], edx
mov edx, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
call fcn.00a94cd0
mov dword [esp + 0x70], eax
jmp 0xaafe09
movzx ecx, byte [ebp + ebx + 0x3674]
movsx edi, word [esp + 0x120]
movsx edx, word [esp + 0x1a0]
xor cl, 1
movzx ecx, cl
movzx ebx, word [ecx + ecx + 0xdf8be0]
movzx ecx, byte [ebp + esi + 0x3674]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
xor cl, 1
mov dword [esp + 4], eax
mov eax, dword [0xdf8620]
movzx ecx, cl
movzx ecx, word [ecx + ecx + 0xdf8be0]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
add ecx, ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [eax]
mov eax, edi
call fcn.00a90360
mov ebx, dword [esp + 0x1344]
cwde
test eax, eax
mov word [ebx], ax
setne al
movzx eax, al
mov dword [esp + 0xcc], eax
jmp 0xaaeba0
mov eax, dword [eax + 0xdf8620]
xor edx, edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov eax, ebx
imul ebx
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x68]
imul ecx, edx
mul dword [esp + 0x58]
mov dword [esp + 0x84], edx
add dword [esp + 0x84], ecx
test ebx, ebx
mov dword [esp + 0x80], eax
je 0xab043f
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x58]
lea eax, [eax + ebx + 0x80]
sar eax, 8
sub ecx, eax
mov ebx, edi
mov eax, ecx
imul ecx
mov ecx, dword [esp + 0x80]
imul ebx, edx
mul edi
mov dword [esp + 0x74], edx
add dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
jmp 0xaaf7e9
mov edx, dword [ebp + 0x14]
lea ecx, [ebp + 0x10]
mov esi, dword [ebp + 0x24]
lea edi, [ebp + 0x20]
mov dword [esp + 0x60], ebp
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x20]
cmp esi, edx
ja 0xab012e
jb 0xab0128
cmp ebx, eax
jae 0xab012e
mov eax, ebx
mov edx, esi
mov ecx, edi
mov esi, dword [esp + 0x60]
lea edi, [esi + 0x30]
mov ebx, dword [esi + 0x30]
mov esi, dword [esi + 0x34]
cmp esi, edx
ja 0xab014b
jb 0xab0145
cmp ebx, eax
jae 0xab014b
mov eax, ebx
mov edx, esi
mov ecx, edi
mov esi, dword [esp + 0x60]
lea edi, [esi + 0x40]
mov ebx, dword [esi + 0x40]
mov esi, dword [esi + 0x44]
cmp esi, edx
ja 0xab0168
jb 0xab0162
cmp ebx, eax
jae 0xab0168
mov eax, ebx
mov edx, esi
mov ecx, edi
mov esi, dword [esp + 0x60]
lea edi, [esi + 0x50]
mov ebx, dword [esi + 0x50]
mov esi, dword [esi + 0x54]
cmp esi, edx
ja 0xab0185
jb 0xab017f
cmp ebx, eax
jae 0xab0185
mov eax, ebx
mov edx, esi
mov ecx, edi
mov esi, dword [esp + 0x60]
lea edi, [esi + 0x60]
mov ebx, dword [esi + 0x60]
mov esi, dword [esi + 0x64]
cmp esi, edx
ja 0xab01a2
jb 0xab019c
cmp ebx, eax
jae 0xab01a2
mov eax, ebx
mov edx, esi
mov ecx, edi
mov edi, dword [esp + 0x60]
mov ebx, edi
add ebx, 0x70
cmp dword [edi + 0x74], edx
ja 0xab01b7
jb 0xab0216
cmp dword [edi + 0x70], eax
jb 0xab0216
mov esi, dword [ecx + 8]
mov ebp, dword [esp + 0x1344]
xor ebx, ebx
mov eax, dword [esp + 0x94]
movzx eax, byte [eax + ebx]
inc ebx
lea ecx, [ebp + eax*2]
movzx eax, word [esp + esi*4 + 0x322]
movsx edx, word [ecx]
movzx esi, word [esp + esi*4 + 0x320]
mov edi, edx
sar edi, 0x1f
xor eax, edi
shr edx, 0x1f
add eax, edx
cmp dword [esp + 0xa0], ebx
mov word [ecx], ax
jge 0xab01c3
mov ecx, 1
mov dword [esp + 0xcc], ecx
mov eax, dword [esp + 0xcc]
jmp 0xaaeba0
mov ecx, ebx
jmp 0xab01b7
mov eax, dword [esp + 0xac]
imul dword [esp + 0x6c]
mov dword [esp], esi
shrd eax, edx, 4
shr edx, 4
mov edi, eax
mov ebp, edx
mov edx, ebx
mov ebx, dword [esp + 0x78]
add edi, dword [esp + 0x80]
mov eax, ecx
adc ebp, dword [esp + 0x84]
mov dword [esp + 8], ebx
lea ebx, [esp + 0x320]
sub eax, edi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x60]
sbb edx, ebp
mov ecx, ebx
call fcn.00a90620
lea ecx, [esp + 0x110]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x60], ebx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x320]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x104]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
sub eax, edi
sbb edx, ebp
sub ecx, edi
sbb ebx, ebp
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.00a90700
mov dword [esp + 0x78], eax
mov eax, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x60], eax
jmp 0xaaf551
lea eax, [esp + 0x110]
mov edx, dword [esp + 0x78]
mov edi, eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x320]
mov esi, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x104]
mov dword [esp + 0x78], eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], edx
mov edx, ecx
mov ecx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0xd0]
call fcn.00a948c0
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x14], esi
mov dword [esp + 4], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
call fcn.00a948c0
mov ebx, eax
jmp 0xaaf8d7
lea ebx, [esp + 0x220]
xor eax, eax
mov edx, 0x10000000
mov edi, ebx
mov dword [esp + 0x58], ebx
mov esi, dword [edi + 0x14]
mov ebx, edi
add ebx, 0x10
mov ecx, dword [edi + 0x10]
cmp esi, edx
ja 0xab0437
jb 0xab03de
cmp ecx, eax
jae 0xab0437
mov edx, esi
mov esi, dword [esp + 0x58]
mov eax, ecx
mov edi, esi
mov ecx, dword [esi + 0x20]
mov esi, dword [esi + 0x24]
add edi, 0x20
cmp esi, edx
ja 0xab0401
jb 0xab03fb
cmp ecx, eax
jae 0xab0401
mov eax, ecx
mov edx, esi
mov ebx, edi
mov edi, dword [esp + 0x58]
cmp dword [edi + 0x34], edx
lea ecx, [edi + 0x30]
ja 0xab0416
jb 0xab0414
cmp dword [edi + 0x30], eax
jae 0xab0416
mov ebx, ecx
cmp ebx, dword [esp + 0x58]
je 0xaaf2f7
mov esi, dword [ebx + 8]
mov ebx, dword [esp + 0xa0]
test ebx, ebx
js 0xab01fe
jmp 0xab01ba
mov ebx, dword [esp + 0x58]
mov esi, ebx
jmp 0xab03e6
mov edi, dword [esp + 0xb4]
mov eax, ebp
mov edx, ebp
sar eax, 0x1f
mov ecx, ebp
shr edx, 0x1f
mov dword [esp + 0xb4], eax
xor edi, eax
mov eax, edi
mov edi, ebp
mov ebp, dword [esp + 0x58]
lea eax, [eax + edx + 8]
and eax, 0xfffffff0
sub ecx, eax
mov eax, ecx
mov dword [esp + 0xc8], edx
imul ecx
imul ebp, edx
mul dword [esp + 0x58]
mov ebx, edx
mov ecx, eax
mov eax, dword [esp + 0x88]
add ebx, ebp
mov ebp, dword [esp + 0x90]
lea eax, [ebp + eax + 0x80]
mov ebp, eax
mov eax, dword [esp + 0x70]
sar ebp, 8
mov dword [esp + 0x90], ebp
sub eax, ebp
mov ebp, dword [esp + 0x58]
imul eax
imul ebp, edx
mul dword [esp + 0x58]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xb4]
add dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x58]
xor eax, edx
mov edx, dword [esp + 0xc8]
lea eax, [edx + eax + 8]
mov edx, edi
and eax, 0xfffffff0
sub edx, eax
mov eax, edx
imul edx
imul ebp, edx
mul dword [esp + 0x58]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], eax
add dword [esp + 0x8c], ebp
jmp 0xaaf7e9
movzx eax, byte [edi + 0xdfcb40]
mov edi, dword [esp + 0xcc]
mov byte [esp + 0x58], al
movzx eax, byte [edi + ebx + 0xdfcb80]
mov ebx, dword [esp + 0x9c]
mov edi, dword [esp + 0xb8]
movzx ecx, byte [ebx + eax]
movzx ebx, word [ecx + ecx + 0xdf8be0]
mov eax, ecx
xor al, 1
movzx eax, al
mov dword [esp + 0xac], ebx
mov dword [esp + 0x104], ebx
movzx ebx, word [eax + eax + 0xdf8be0]
movzx eax, byte [esp + 0x58]
movzx ecx, byte [edi + eax]
mov eax, ecx
movzx ecx, word [ecx + ecx + 0xdf8be0]
xor al, 1
movzx eax, al
movzx eax, word [eax + eax + 0xdf8be0]
add ecx, ebx
mov dword [esp + 0x108], ecx
add ebx, eax
mov dword [esp + 0x10c], ebx
jmp 0xaaf646