Function at 0x100cf733
Capabilities:
Encode data using xor
Encrypt data using salsa20 or chacha
Hash data using murmur3

Disassembly:
mov edi, edi
mov ecx, 0xfffffff
push ebp
mov ebp, esp
sub esp, 0x94c
mov eax, dword [0x10120a68]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x3d4], eax
mov eax, dword [ebp + 0xc]
mov ebx, 0x10000000
push esi
push edi
mov edi, dword [ebp + 0x14]
cmp edi, ebx
mov dword [ebp - 0x378], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x34c], edi
jb 0x100d0d0d
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp edi, eax
jae 0x100d01ca
mov esi, dword [0x1000472c]
and dword [ebp - 0x340], 0
sub edi, ebx
dec esi
js 0x100cf7e5
mov eax, dword [ebp - 0x340]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x100150d8]
mov dword [ebp - 0x330], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x100cf7d0
lea esi, [eax - 1]
jmp 0x100cf7dd
jbe 0x100cf968
inc eax
mov dword [ebp - 0x340], eax
cmp esi, dword [ebp - 0x340]
jge 0x100cf7a8
xor edx, edx
test edx, edx
je 0x100d01c4
mov eax, dword [edx]
mov esi, eax
and eax, ecx
mov edi, eax
shr esi, 0x1c
and esi, 7
lea esi, [esi + edx + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x334], eax
mov eax, dword [0x1007b9bc]
mov dword [ebp - 0x348], esi
sub eax, edi
sub dword [ebp - 0x348], ebx
lea ecx, [eax + 1]
mov dword [ebp - 0x34c], esi
mov dword [ebp - 0x374], edi
mov dword [ebp - 0x340], ecx
xor eax, eax
test ecx, ecx
je 0x100cf868
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x340], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x340], 0
jne 0x100cf838
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push edi
push dword [ebp - 0x348]
mov dword [ebp - 0x344], eax
mov eax, 0xbd0580a4
mov eax, dword [ebp - 0x334]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x69c], eax
mov eax, dword [ebp - 0x344]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x6a0], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x354], edi
mov dword [ebp - 0x340], esi
mov dword [ebp - 0x32c], eax
je 0x100d0006
lea eax, [ebp - 0x6a0]
push eax
mov eax, 0x324fe6a8
mov edx, dword [0x1001256c]
mov esi, dword [ebp - 0x6a0]
mov eax, 0xfffffff
mov edi, dword [ebp - 0x69c]
pop ecx
and edi, eax
and esi, eax
mov eax, ebx
xor ecx, ecx
add esi, ebx
mov dword [ebp - 0x3a0], ecx
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x330], edi
mov dword [ebp - 0x33c], esi
sub eax, edx
mov dword [ebp - 0x380], eax
jne 0x100cf986
mov dword [ebp - 0x33c], ecx
cmp edi, ecx
jbe 0x100cfbd3
mov ecx, 0x82a003e
mov edx, ecx
mov eax, dword [ebp - 0x33c]
movzx eax, byte [eax + esi]
add eax, ecx
add dword [ebp - 0x3a0], eax
add eax, dword [ebp - 0x39c]
mul edx
add eax, edx
add dword [ebp - 0x3a0], eax
inc dword [ebp - 0x33c]
mov dword [ebp - 0x39c], eax
cmp dword [ebp - 0x33c], edi
jb 0x100cf92b
jmp 0x100cfbd3
mov eax, dword [ebp - 0x330]
mov edx, dword [eax]
shr edx, 1
mov eax, dword [eax + 4]
and edx, 0x3f
and eax, ecx
lea edx, [edx + eax + 0x10000000]
jmp 0x100cf7e7
mov ecx, esi
mov edx, dword [0x1000003c]
lea eax, [esi + edi]
mov dword [ebp - 0x37c], eax
mov esi, 0xfffff000
lea edx, [edx + 0x100000a0]
sub ecx, ebx
mov edi, ecx
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x370], edx
mov edx, ecx
and edx, esi
sub edi, edx
mov dword [ebp - 0x338], edi
mov edi, dword [ebp - 0x330]
add ecx, edi
mov edi, ecx
and edi, esi
sub ecx, edi
add eax, ebx
mov dword [ebp - 0x368], ecx
mov ecx, dword [ebp - 0x370]
mov esi, eax
add ecx, eax
mov dword [ebp - 0x364], ecx
cmp eax, ecx
je 0x100cf9f6
cmp dword [esi], edx
jae 0x100cf9f6
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x364]
jne 0x100cf9e7
and dword [ebp - 0x35c], 0
cmp esi, dword [ebp - 0x364]
je 0x100cfa37
cmp dword [esi], edx
jne 0x100cfa37
mov ecx, dword [esi + 4]
sub ecx, 8
shr ecx, 1
je 0x100cfa37
lea eax, [esi + 8]
movzx edx, word [eax]
and edx, 0xfff
cmp edx, dword [ebp - 0x338]
jae 0x100cfa37
inc dword [ebp - 0x35c]
inc eax
inc eax
cmp dword [ebp - 0x35c], ecx
jne 0x100cfa16
mov ecx, 0x82a003e
cmp esi, dword [ebp - 0x364]
je 0x100cfb94
cmp dword [esi], edi
ja 0x100cfb94
mov eax, dword [esi + 4]
lea edx, [eax - 8]
shr edx, 1
mov eax, dword [ebp - 0x35c]
cmp eax, edx
jne 0x100cfa82
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x364]
je 0x100cfb94
cmp dword [esi], edi
ja 0x100cfb94
and dword [ebp - 0x35c], 0
jmp 0x100cfa50
cmp dword [esi], edi
jne 0x100cfa9c
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x368]
jae 0x100cfb94
mov edx, 0xf000
mov eax, dword [ebp - 0x35c]
inc dword [ebp - 0x35c]
test word [esi + eax*2 + 8], dx
je 0x100cfa3c
lea eax, [esi + eax*2 + 8]
mov edx, dword [esi]
and dword [ebp - 0x338], 0
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x10000000]
mov dword [ebp - 0x370], eax
sub eax, dword [ebp - 0x33c]
mov dword [ebp - 0x330], eax
je 0x100cfb28
mov eax, dword [ebp - 0x338]
mov edx, dword [ebp - 0x33c]
movzx eax, byte [eax + edx]
mov edx, ecx
add eax, ecx
add dword [ebp - 0x3a0], eax
add eax, dword [ebp - 0x39c]
mul edx
add eax, edx
add dword [ebp - 0x3a0], eax
inc dword [ebp - 0x338]
mov dword [ebp - 0x39c], eax
mov eax, dword [ebp - 0x338]
cmp eax, dword [ebp - 0x330]
jb 0x100cfae4
mov eax, dword [ebp - 0x370]
mov eax, dword [eax]
sub eax, dword [ebp - 0x380]
and dword [ebp - 0x338], 0
mov dword [ebp - 0x6c8], eax
mov edx, ecx
mov eax, dword [ebp - 0x338]
movzx eax, byte [ebp + eax - 0x6c8]
add eax, ecx
add dword [ebp - 0x3a0], eax
add eax, dword [ebp - 0x39c]
mul edx
add eax, edx
add dword [ebp - 0x3a0], eax
inc dword [ebp - 0x338]
cmp dword [ebp - 0x338], 4
mov dword [ebp - 0x39c], eax
jb 0x100cfb43
mov eax, dword [ebp - 0x370]
add eax, 4
mov dword [ebp - 0x33c], eax
jmp 0x100cfa3c
mov edi, dword [ebp - 0x37c]
xor esi, esi
sub edi, dword [ebp - 0x33c]
je 0x100cfbd3
mov edx, ecx
mov eax, dword [ebp - 0x33c]
movzx eax, byte [eax + esi]
add eax, ecx
add dword [ebp - 0x3a0], eax
add eax, dword [ebp - 0x39c]
mul edx
add eax, edx
add dword [ebp - 0x3a0], eax
inc esi
cmp esi, edi
mov dword [ebp - 0x39c], eax
jb 0x100cfba4
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3a0]
mov byte [ebp + eax - 0x304], cl
inc eax
cmp eax, 0x10
jb 0x100cfbd7
mov eax, 0xd798abf1
mov edx, dword [ebp - 0x2fc]
mov eax, dword [ebp - 0x304]
mov esi, dword [ebp - 0x2f8]
mov ecx, dword [ebp - 0x300]
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x820], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x844], ecx
mov dword [ebp - 0x81c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x84c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x838], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x810], eax
mov eax, dword [ebp - 0x344]
mov dword [ebp - 0x824], ecx
lea ecx, [ebp - 0x44]
sub eax, ecx
mov dword [ebp - 0x338], eax
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x840], edx
mov dword [ebp - 0x83c], esi
mov dword [ebp - 0x818], edx
mov dword [ebp - 0x814], esi
mov dword [ebp - 0x834], edi
mov dword [ebp - 0x830], edi
mov dword [ebp - 0x82c], edi
mov dword [ebp - 0x828], edi
mov dword [ebp - 0x37c], eax
lea edi, [ebp - 0x5d4]
lea esi, [ebp - 0x84c]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x5b4]
mov esi, dword [ebp - 0x5a4]
mov eax, dword [ebp - 0x5c4]
mov dword [ebp - 0x370], 3
mov edx, dword [ebp - 0x5d4]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x5d4], edx
mov edx, dword [ebp - 0x5d0]
mov edi, dword [ebp - 0x5c0]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5b0], edx
mov edx, edi
mov edi, dword [ebp - 0x5b0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5a0], edx
mov edx, edi
mov edi, dword [ebp - 0x5a0]
add edi, edx
mov edx, dword [ebp - 0x5a0]
rol edi, 0xd
xor dword [ebp - 0x5d0], edi
mov edi, dword [ebp - 0x5d0]
add edx, edi
mov edi, dword [ebp - 0x5ac]
ror edx, 0xe
xor dword [ebp - 0x5c0], edx
mov edx, dword [ebp - 0x5bc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x59c], edx
mov edx, edi
mov edi, dword [ebp - 0x59c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5cc], edx
mov edx, edi
mov edi, dword [ebp - 0x5cc]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x5cc]
xor dword [ebp - 0x5bc], edi
mov edi, dword [ebp - 0x5bc]
add edx, edi
mov edi, dword [ebp - 0x598]
ror edx, 0xe
xor dword [ebp - 0x5ac], edx
mov edx, dword [ebp - 0x5a8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5c8], edx
mov edx, edi
mov edi, dword [ebp - 0x5c8]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5b8], edx
mov edx, edi
mov edi, dword [ebp - 0x5b8]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x5b8]
xor dword [ebp - 0x5a8], edi
mov edi, dword [ebp - 0x5a8]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x5d4]
xor dword [ebp - 0x598], edx
mov edx, dword [ebp - 0x5c8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5d0], edx
mov edx, edi
mov edi, dword [ebp - 0x5d0]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x5d0]
xor dword [ebp - 0x5cc], edi
mov edi, dword [ebp - 0x5cc]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x5cc]
xor dword [ebp - 0x5c8], edi
mov edi, dword [ebp - 0x5c8]
add edi, edx
mov edx, dword [ebp - 0x5c0]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x5d4], edi
rol edx, 7
xor dword [ebp - 0x5bc], edx
mov edi, dword [ebp - 0x5bc]
mov edx, dword [ebp - 0x5c0]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x5bc]
xor dword [ebp - 0x5b8], edi
mov edi, dword [ebp - 0x5b8]
add edi, edx
rol edi, 0xd
xor eax, edi
mov edx, dword [ebp - 0x5b8]
add edx, eax
ror edx, 0xe
mov edi, dword [ebp - 0x5b0]
xor dword [ebp - 0x5c0], edx
mov edx, dword [ebp - 0x5ac]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5a8], edx
mov edi, dword [ebp - 0x5a8]
mov edx, dword [ebp - 0x5ac]
add edi, edx
rol edi, 9
xor ecx, edi
mov edi, dword [ebp - 0x59c]
mov edx, dword [ebp - 0x5a8]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x5b0], edx
mov edx, dword [ebp - 0x5b0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x5ac], edx
mov edx, dword [ebp - 0x598]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x598]
add edx, esi
rol edx, 9
xor dword [ebp - 0x5a0], edx
mov edx, dword [ebp - 0x5a0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x59c], edx
mov edx, dword [ebp - 0x5a0]
mov edi, dword [ebp - 0x59c]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x598], edi
dec dword [ebp - 0x370]
jne 0x100cfccd
mov dword [ebp - 0x5c4], eax
mov dword [ebp - 0x5a4], esi
xor eax, eax
mov dword [ebp - 0x5b4], ecx
mov ecx, dword [ebp + eax - 0x84c]
add dword [ebp + eax - 0x5d4], ecx
add eax, 4
cmp eax, 0x40
jl 0x100cff51
lea edi, [ebp - 0x44]
lea esi, [ebp - 0x5d4]
inc dword [ebp - 0x82c]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp - 0x354], 0x40
jbe 0x100cffcf
mov edi, dword [ebp - 0x338]
mov eax, dword [ebp - 0x37c]
lea edx, [eax + edi]
lea ecx, [ebp + esi - 0x44]
mov al, byte [ecx + edx]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
mov byte [ecx + edi], al
inc esi
cmp esi, 0x40
jb 0x100cff95
push 0x40
pop eax
sub dword [ebp - 0x354], eax
add dword [ebp - 0x32c], eax
add edi, eax
add dword [ebp - 0x340], eax
mov dword [ebp - 0x338], edi
jmp 0x100cfca0
cmp dword [ebp - 0x354], 0
jbe 0x100d0006
mov edx, dword [ebp - 0x32c]
mov edi, dword [ebp - 0x340]
lea eax, [ebp - 0x44]
sub edi, eax
sub edx, eax
lea ecx, [ebp + esi - 0x44]
mov al, byte [ecx + edi]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
mov byte [ecx + edx], al
cmp esi, dword [ebp - 0x354]
jb 0x100cffeb
mov eax, dword [ebp - 0x334]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d00c2
call fcn.1004ad05
mov esi, 0x100f1b6e
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x37c], eax
mov eax, dword [ebp - 0x3d4]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d0056
xor edx, edx
div ecx
mov eax, dword [ebp - 0x378]
inc edx
mov ecx, dword [ebp - 0x37c]
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x37c], 0
mov eax, edi
jae 0x100d00bb
mov ecx, dword [ebp - 0x37c]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d00ac
mov eax, esi
jmp 0x100d6598
mov ecx, dword [0x1001256c]
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x344]
sub ebx, ecx
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x334], ebx
jne 0x100d00ec
test eax, eax
je 0x100d01af
mov esi, dword [ebp - 0x344]
mov eax, dword [ebp - 0x348]
mov ecx, dword [ebp - 0x374]
sub esi, dword [ebp - 0x34c]
add eax, ecx
mov ecx, dword [0x10103928]
mov dword [ebp - 0x374], eax
xor ebx, ebx
dec ecx
js 0x100d0142
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d0139
lea ecx, [eax - 1]
jmp 0x100d013e
jbe 0x100d0146
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d0117
mov edi, ebx
jmp 0x100d01a7
mov edi, eax
jmp 0x100d01a7
mov eax, dword [edi*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x374]
jae 0x100d01af
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d0194
dec ecx
je 0x100d018c
dec ecx
jne 0x100d01a0
mov edx, dword [ebp - 0x334]
jmp 0x100d01a0
mov edx, dword [ebp - 0x370]
jmp 0x100d01a0
mov edx, dword [ebp - 0x334]
sub edx, dword [ebp - 0x370]
dec eax
dec eax
jne 0x100d01a6
add dword [ebx], edx
inc edi
cmp edi, dword [0x10103928]
jb 0x100d014a
mov eax, dword [0x1007b9bc]
mov eax, 0xf4e5a020
mov eax, dword [ebp - 0x344]
jmp 0x100d6598
mov edi, dword [ebp - 0x34c]
cmp edi, ebx
jb 0x100d0d0d
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp dword [ebp - 0x34c], eax
jae 0x100d0d0d
mov esi, dword [0x100077d0]
mov edi, dword [ebp - 0x34c]
and dword [ebp - 0x32c], 0
sub edi, ebx
dec esi
js 0x100d0241
mov eax, dword [ebp - 0x32c]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1004a608]
mov dword [ebp - 0x374], edx
mov edx, dword [edx]
shr edx, 1
and edx, ecx
cmp edi, edx
jae 0x100d022c
lea esi, [eax - 1]
jmp 0x100d0239
jbe 0x100d03f6
inc eax
mov dword [ebp - 0x32c], eax
cmp esi, dword [ebp - 0x32c]
jge 0x100d0203
xor edx, edx
test edx, edx
je 0x100d0d0d
mov eax, dword [edx]
mov esi, eax
shr eax, 1
and eax, ecx
shr esi, 0x1d
lea esi, [esi + edx + 8]
mov edi, eax
lea eax, [esi + edi]
mov dword [ebp - 0x33c], eax
mov eax, dword [0x1007b9bc]
sub eax, edi
lea ecx, [eax + 1]
mov dword [ebp - 0x348], esi
sub dword [ebp - 0x348], ebx
mov dword [ebp - 0x34c], esi
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x358], edi
mov dword [ebp - 0x32c], ecx
je 0x100d02c3
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d0293
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push edi
push dword [ebp - 0x348]
mov dword [ebp - 0x344], eax
mov eax, 0xe27fc1a7
mov eax, dword [ebp - 0x33c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6ac], eax
mov eax, dword [ebp - 0x344]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x6b0], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x354], edi
mov dword [ebp - 0x32c], esi
mov dword [ebp - 0x340], eax
je 0x100d0b3d
lea eax, [ebp - 0x6b0]
push eax
mov eax, 0xa79d4f
mov esi, dword [0x1001256c]
mov edi, dword [ebp - 0x6b0]
pop ecx
mov ecx, dword [ebp - 0x6ac]
mov eax, 0xfffffff
and ecx, eax
and edi, eax
xor edx, edx
mov dword [ebp - 0x3c0], edx
mov eax, ebx
add edi, ebx
mov dword [ebp - 0x3bc], edx
mov dword [ebp - 0x334], ecx
mov dword [ebp - 0x338], edi
sub eax, esi
mov dword [ebp - 0x380], eax
jne 0x100d0414
mov dword [ebp - 0x338], edx
cmp ecx, edx
jbe 0x100d06fb
mov ecx, 0x7fffffff
mov esi, 0x8dedd457
mov edx, esi
mov eax, dword [ebp - 0x338]
movzx eax, byte [eax + edi]
sub eax, 0x72122ba9
add dword [ebp - 0x3c0], eax
add eax, dword [ebp - 0x3bc]
mul edx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3c0], eax
inc dword [ebp - 0x338]
mov dword [ebp - 0x3bc], eax
mov eax, dword [ebp - 0x338]
cmp eax, dword [ebp - 0x334]
jb 0x100d038f
jmp 0x100d06fb
mov eax, dword [ebp - 0x374]
mov edx, dword [eax]
shr edx, 1
and edx, ecx
mov eax, dword [eax + 4]
and eax, 0x3f
lea edx, [edx + eax + 0x10000000]
jmp 0x100d0243
lea eax, [edi + ecx]
mov edx, dword [0x1000003c]
mov ecx, edi
mov dword [ebp - 0x330], eax
sub ecx, ebx
mov esi, ecx
lea edx, [edx + 0x100000a0]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x374], edx
mov edx, ecx
and edx, 0xfffff000
sub esi, edx
mov dword [ebp - 0x37c], esi
mov esi, dword [ebp - 0x334]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
mov dword [ebp - 0x36c], esi
sub ecx, esi
mov esi, dword [ebp - 0x374]
add eax, ebx
mov dword [ebp - 0x368], ecx
mov ecx, eax
add esi, eax
cmp eax, esi
mov dword [ebp - 0x364], esi
jmp 0x100d0487
cmp dword [ecx], edx
jae 0x100d048f
add ecx, dword [ecx + 4]
cmp ecx, esi
mov dword [ebp - 0x360], ecx
jne 0x100d047e
and dword [ebp - 0x35c], 0
cmp ecx, esi
je 0x100d04cc
cmp dword [ecx], edx
jne 0x100d04cc
mov edx, dword [ecx + 4]
sub edx, 8
shr edx, 1
je 0x100d04cc
lea eax, [ecx + 8]
movzx ecx, word [eax]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x37c]
jae 0x100d04cc
inc dword [ebp - 0x35c]
inc eax
inc eax
cmp dword [ebp - 0x35c], edx
jne 0x100d04ab
mov esi, 0x8dedd457
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x360]
jmp 0x100d04e4
mov edi, dword [ebp - 0x338]
cmp eax, dword [ebp - 0x364]
je 0x100d0682
mov edx, dword [ebp - 0x36c]
cmp dword [eax], edx
ja 0x100d0682
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x35c], eax
mov eax, dword [ebp - 0x360]
jne 0x100d0540
add eax, dword [eax + 4]
mov dword [ebp - 0x360], eax
cmp eax, dword [ebp - 0x364]
je 0x100d0682
mov edx, dword [ebp - 0x36c]
cmp dword [eax], edx
ja 0x100d0682
and dword [ebp - 0x35c], 0
jmp 0x100d04fe
mov edx, dword [ebp - 0x36c]
cmp dword [eax], edx
jne 0x100d0567
mov edx, dword [ebp - 0x35c]
movzx edx, word [eax + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0x368]
jae 0x100d0682
mov edx, dword [ebp - 0x35c]
mov edi, 0xf000
inc dword [ebp - 0x35c]
test word [eax + edx*2 + 8], di
je 0x100d04de
lea edx, [eax + edx*2 + 8]
movzx edx, word [edx]
mov eax, dword [eax]
and edx, 0xfff
lea eax, [eax + edx + 0x10000000]
mov dword [ebp - 0x334], eax
xor edi, edi
sub eax, dword [ebp - 0x338]
mov dword [ebp - 0x374], eax
je 0x100d0606
mov eax, dword [ebp - 0x338]
mov edx, esi
movzx eax, byte [eax + edi]
sub eax, 0x72122ba9
add dword [ebp - 0x3c0], eax
add eax, dword [ebp - 0x3bc]
mul edx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3c0], eax
mov dword [ebp - 0x3bc], eax
inc edi
cmp edi, dword [ebp - 0x374]
jb 0x100d05af
mov eax, dword [ebp - 0x334]
mov eax, dword [eax]
sub eax, dword [ebp - 0x380]
mov dword [ebp - 0x6cc], eax
xor edi, edi
movzx eax, byte [ebp + edi - 0x6cc]
sub eax, 0x72122ba9
mov edx, esi
add dword [ebp - 0x3c0], eax
add eax, dword [ebp - 0x3bc]
mul edx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3c0], eax
inc edi
mov dword [ebp - 0x3bc], eax
cmp edi, 4
jb 0x100d061c
mov edi, dword [ebp - 0x334]
add edi, 4
mov dword [ebp - 0x338], edi
jmp 0x100d04d6
mov eax, dword [ebp - 0x330]
and dword [ebp - 0x338], 0
sub eax, edi
mov dword [ebp - 0x374], eax
je 0x100d06fb
mov edx, esi
mov eax, dword [ebp - 0x338]
movzx eax, byte [eax + edi]
sub eax, 0x72122ba9
add dword [ebp - 0x3c0], eax
add eax, dword [ebp - 0x3bc]
mul edx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3c0], eax
inc dword [ebp - 0x338]
mov dword [ebp - 0x3bc], eax
mov eax, dword [ebp - 0x338]
cmp eax, dword [ebp - 0x374]
jb 0x100d0699
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3c0]
mov byte [ebp + eax - 0x2d4], cl
inc eax
cmp eax, 0x10
jb 0x100d06ff
mov eax, 0x6eb8dc4f
mov esi, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x2d4]
mov edx, dword [ebp - 0x2cc]
mov dword [ebp - 0x948], eax
mov dword [ebp - 0x920], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x944], ecx
mov dword [ebp - 0x91c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x94c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x938], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x910], eax
mov eax, dword [ebp - 0x344]
mov dword [ebp - 0x924], ecx
lea ecx, [ebp - 0x84]
sub eax, ecx
mov dword [ebp - 0x370], eax
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x940], edx
mov dword [ebp - 0x93c], esi
mov dword [ebp - 0x918], edx
mov dword [ebp - 0x914], esi
mov dword [ebp - 0x934], edi
mov dword [ebp - 0x930], edi
mov dword [ebp - 0x92c], edi
mov dword [ebp - 0x928], edi
mov dword [ebp - 0x374], eax
lea esi, [ebp - 0x94c]
lea edi, [ebp - 0x654]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x624]
mov eax, dword [ebp - 0x644]
mov ecx, dword [ebp - 0x634]
mov dword [ebp - 0x334], 2
mov edx, dword [ebp - 0x654]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x654], edx
mov edi, dword [ebp - 0x640]
mov edx, dword [ebp - 0x650]
add edx, edi
rol edx, 7
xor dword [ebp - 0x630], edx
mov edx, edi
mov edi, dword [ebp - 0x630]
add edx, edi
rol edx, 9
xor dword [ebp - 0x620], edx
mov edx, edi
mov edi, dword [ebp - 0x620]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x620]
xor dword [ebp - 0x650], edi
mov edi, dword [ebp - 0x650]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x62c]
xor dword [ebp - 0x640], edx
mov edx, dword [ebp - 0x63c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x61c], edx
mov edx, edi
mov edi, dword [ebp - 0x61c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x64c], edx
mov edx, edi
mov edi, dword [ebp - 0x64c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x64c]
xor dword [ebp - 0x63c], edi
mov edi, dword [ebp - 0x63c]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x618]
xor dword [ebp - 0x62c], edx
mov edx, dword [ebp - 0x628]
add edx, edi
rol edx, 7
xor dword [ebp - 0x648], edx
mov edx, edi
mov edi, dword [ebp - 0x648]
add edx, edi
rol edx, 9
xor dword [ebp - 0x638], edx
mov edx, edi
mov edi, dword [ebp - 0x638]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x638]
xor dword [ebp - 0x628], edi
mov edi, dword [ebp - 0x628]
add edx, edi
mov edi, dword [ebp - 0x654]
ror edx, 0xe
xor dword [ebp - 0x618], edx
mov edx, dword [ebp - 0x648]
add edx, edi
rol edx, 7
xor dword [ebp - 0x650], edx
mov edx, edi
mov edi, dword [ebp - 0x650]
add edi, edx
mov edx, dword [ebp - 0x650]
rol edi, 9
xor dword [ebp - 0x64c], edi
mov edi, dword [ebp - 0x64c]
add edi, edx
mov edx, dword [ebp - 0x64c]
rol edi, 0xd
xor dword [ebp - 0x648], edi
mov edi, dword [ebp - 0x648]
add edi, edx
mov edx, dword [ebp - 0x640]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x654], edi
rol edx, 7
xor dword [ebp - 0x63c], edx
mov edx, dword [ebp - 0x640]
mov edi, dword [ebp - 0x63c]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x63c]
xor dword [ebp - 0x638], edi
mov edi, dword [ebp - 0x638]
add edi, edx
rol edi, 0xd
xor eax, edi
mov edx, dword [ebp - 0x638]
mov edi, dword [ebp - 0x630]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x640], edx
mov edx, dword [ebp - 0x62c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x628], edx
mov edx, dword [ebp - 0x62c]
mov edi, dword [ebp - 0x628]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x628]
xor ecx, edi
add edx, ecx
mov edi, dword [ebp - 0x61c]
rol edx, 0xd
xor dword [ebp - 0x630], edx
mov edx, dword [ebp - 0x630]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x62c], edx
mov edx, dword [ebp - 0x618]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x618]
add edx, esi
rol edx, 9
xor dword [ebp - 0x620], edx
mov edx, dword [ebp - 0x620]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x61c], edx
mov edi, dword [ebp - 0x61c]
mov edx, dword [ebp - 0x620]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x618], edi
dec dword [ebp - 0x334]
jne 0x100d07f8
mov dword [ebp - 0x644], eax
mov dword [ebp - 0x624], esi
xor eax, eax
mov dword [ebp - 0x634], ecx
mov ecx, dword [ebp + eax - 0x94c]
add dword [ebp + eax - 0x654], ecx
add eax, 4
cmp eax, 0x40
jl 0x100d0a7c
inc dword [ebp - 0x92c]
lea edi, [ebp - 0x84]
lea esi, [ebp - 0x654]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp - 0x354], 0x40
jbe 0x100d0b00
mov eax, dword [ebp - 0x374]
mov edi, dword [ebp - 0x370]
lea edx, [eax + edi]
lea ecx, [ebp + esi - 0x84]
mov al, byte [ecx + edx]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
cmp esi, 0x40
mov byte [ecx + edi], al
jb 0x100d0ac3
push 0x40
pop eax
sub dword [ebp - 0x354], eax
add dword [ebp - 0x340], eax
add edi, eax
add dword [ebp - 0x32c], eax
mov dword [ebp - 0x370], edi
jmp 0x100d07cb
cmp dword [ebp - 0x354], 0
jbe 0x100d0b3d
mov edx, dword [ebp - 0x340]
lea eax, [ebp - 0x84]
mov edi, dword [ebp - 0x32c]
sub edi, eax
sub edx, eax
lea ecx, [ebp + esi - 0x84]
mov al, byte [ecx + edi]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
mov byte [ecx + edx], al
cmp esi, dword [ebp - 0x354]
jb 0x100d0b1f
mov eax, dword [ebp - 0x33c]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d0bfb
call fcn.1004ad05
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x374], eax
mov esi, 0x100f1b6e
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
mov dword [eax + 8], esi
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d0b8d
xor edx, edx
div ecx
mov eax, dword [ebp - 0x378]
inc edx
cmp edi, ebx
mov ecx, dword [ebp - 0x374]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov eax, edi
mov dword [ebp - 0x374], 0
jae 0x100d00bb
mov ecx, dword [ebp - 0x374]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d0be7
jmp 0x100d00bb
mov eax, dword [0x1001256c]
mov edi, dword [ebp - 0x34c]
sub edi, dword [ebp - 0x344]
sub ebx, eax
mov dword [ebp - 0x334], edi
mov dword [ebp - 0x370], ebx
jne 0x100d0c24
test edi, edi
je 0x100d01af
mov ecx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x358]
mov esi, dword [ebp - 0x344]
sub esi, dword [ebp - 0x34c]
add eax, ecx
mov ecx, dword [0x10103928]
xor ebx, ebx
dec ecx
mov dword [ebp - 0x358], eax
js 0x100d0c80
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d0c71
lea ecx, [eax - 1]
jmp 0x100d0c76
jbe 0x100d0c88
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d0c4f
mov edi, dword [ebp - 0x334]
mov dword [ebp - 0x378], ebx
jmp 0x100d0cfa
mov edi, dword [ebp - 0x334]
mov dword [ebp - 0x378], eax
jmp 0x100d0cfa
mov eax, dword [ebp - 0x378]
mov eax, dword [eax*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x358]
jae 0x100d01af
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d0ce6
dec ecx
je 0x100d0ce2
dec ecx
jne 0x100d0cee
mov edx, dword [ebp - 0x370]
jmp 0x100d0cee
mov edx, edi
jmp 0x100d0cee
mov edx, dword [ebp - 0x370]
sub edx, edi
dec eax
dec eax
jne 0x100d0cf4
add dword [ebx], edx
inc dword [ebp - 0x378]
mov eax, dword [ebp - 0x378]
cmp eax, dword [0x10103928]
jb 0x100d0c96
jmp 0x100d01af
cmp dword [ebp - 0x34c], ebx
jb 0x100d6503
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp dword [ebp - 0x34c], eax
jae 0x100d182d
mov esi, dword [0x100bee68]
mov edi, dword [ebp - 0x34c]
and dword [ebp - 0x32c], 0
sub edi, ebx
dec esi
js 0x100d0d87
mov eax, dword [ebp - 0x32c]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x10074390]
mov dword [ebp - 0x358], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x100d0d72
lea esi, [eax - 1]
jmp 0x100d0d7f
jbe 0x100d0f38
inc eax
mov dword [ebp - 0x32c], eax
cmp esi, dword [ebp - 0x32c]
jge 0x100d0d4a
xor eax, eax
test eax, eax
je 0x100d182d
mov esi, dword [eax]
mov edx, dword [eax + 4]
and edx, 7
lea edi, [edx + eax + 8]
shr esi, 1
and esi, ecx
lea eax, [esi + edi]
mov dword [ebp - 0x370], eax
mov eax, dword [0x1007b9bc]
sub eax, esi
lea ecx, [eax + 1]
mov dword [ebp - 0x348], edi
sub dword [ebp - 0x348], ebx
mov dword [ebp - 0x34c], edi
mov dword [ebp - 0x330], esi
mov dword [ebp - 0x32c], ecx
xor eax, eax
test ecx, ecx
je 0x100d0e08
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d0dd8
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push esi
push dword [ebp - 0x348]
mov dword [ebp - 0x344], eax
mov eax, 0x3eaa878c
mov eax, dword [ebp - 0x370]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6bc], eax
mov eax, dword [ebp - 0x344]
add esp, 0xc
mov dword [ebp - 0x6c0], ecx
mov byte [ebp - 0x325], 0
test esi, esi
mov dword [ebp - 0x32c], esi
mov dword [ebp - 0x354], edi
mov dword [ebp - 0x33c], eax
je 0x100d165d
lea eax, [ebp - 0x6c0]
push eax
mov eax, 0xff287770
mov edi, dword [ebp - 0x6c0]
mov esi, dword [0x1001256c]
pop ecx
mov eax, 0xfffffff
mov ecx, dword [ebp - 0x6bc]
and ecx, eax
and edi, eax
mov eax, ebx
xor edx, edx
mov dword [ebp - 0x3b0], edx
add edi, ebx
sub eax, esi
mov dword [ebp - 0x3ac], edx
mov dword [ebp - 0x334], ecx
mov dword [ebp - 0x338], edi
mov dword [ebp - 0x37c], eax
jne 0x100d0f54
cmp ecx, edx
mov dword [ebp - 0x338], edx
jbe 0x100d1232
mov esi, 0x69bf6243
mov ecx, 0x7fffffff
mov edx, esi
mov eax, dword [ebp - 0x338]
movzx eax, byte [eax + edi]
add eax, esi
add dword [ebp - 0x3b0], eax
add eax, dword [ebp - 0x3ac]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3b0], eax
inc dword [ebp - 0x338]
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x338]
cmp eax, dword [ebp - 0x334]
jb 0x100d0ed4
jmp 0x100d1232
mov eax, dword [ebp - 0x358]
mov edx, dword [eax + 4]
and edx, ecx
mov eax, dword [eax]
and eax, 0x3f
lea eax, [eax + edx + 0x10000000]
jmp 0x100d0d89
mov edx, dword [0x1000003c]
lea eax, [edi + ecx]
mov ecx, edi
sub ecx, ebx
mov esi, ecx
lea edx, [edx + 0x100000a0]
mov dword [ebp - 0x380], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x358], edx
mov edx, ecx
and edx, 0xfffff000
sub esi, edx
mov dword [ebp - 0x374], esi
mov esi, dword [ebp - 0x334]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
mov dword [ebp - 0x36c], esi
sub ecx, esi
mov esi, dword [ebp - 0x358]
mov dword [ebp - 0x368], ecx
add eax, ebx
mov ecx, eax
add esi, eax
mov dword [ebp - 0x364], esi
cmp eax, esi
jmp 0x100d0fc7
cmp dword [ecx], edx
jae 0x100d0fcf
add ecx, dword [ecx + 4]
cmp ecx, esi
mov dword [ebp - 0x360], ecx
jne 0x100d0fbe
and dword [ebp - 0x35c], 0
cmp ecx, esi
je 0x100d100c
cmp dword [ecx], edx
jne 0x100d100c
mov edx, dword [ecx + 4]
sub edx, 8
shr edx, 1
je 0x100d100c
lea eax, [ecx + 8]
movzx ecx, word [eax]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x374]
jae 0x100d100c
inc dword [ebp - 0x35c]
inc eax
inc eax
cmp dword [ebp - 0x35c], edx
jne 0x100d0feb
mov esi, 0x69bf6243
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x360]
jmp 0x100d1024
mov edi, dword [ebp - 0x338]
cmp eax, dword [ebp - 0x364]
je 0x100d11bc
mov edx, dword [ebp - 0x36c]
cmp dword [eax], edx
ja 0x100d11bc
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x35c], eax
mov eax, dword [ebp - 0x360]
jne 0x100d1080
add eax, dword [eax + 4]
mov dword [ebp - 0x360], eax
cmp eax, dword [ebp - 0x364]
je 0x100d11bc
mov edx, dword [ebp - 0x36c]
cmp dword [eax], edx
ja 0x100d11bc
and dword [ebp - 0x35c], 0
jmp 0x100d103e
mov edx, dword [ebp - 0x36c]
cmp dword [eax], edx
jne 0x100d10a7
mov edx, dword [ebp - 0x35c]
movzx edx, word [eax + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0x368]
jae 0x100d11bc
mov edi, 0xf000
mov edx, dword [ebp - 0x35c]
inc dword [ebp - 0x35c]
test word [eax + edx*2 + 8], di
je 0x100d101e
lea edx, [eax + edx*2 + 8]
movzx edx, word [edx]
and edx, 0xfff
xor edi, edi
mov eax, dword [eax]
lea eax, [eax + edx + 0x10000000]
mov dword [ebp - 0x334], eax
sub eax, dword [ebp - 0x338]
mov dword [ebp - 0x358], eax
je 0x100d1143
mov eax, dword [ebp - 0x338]
mov edx, esi
movzx eax, byte [eax + edi]
add eax, esi
add dword [ebp - 0x3b0], eax
add eax, dword [ebp - 0x3ac]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3b0], eax
inc edi
mov dword [ebp - 0x3ac], eax
cmp edi, dword [ebp - 0x358]
jb 0x100d10ef
mov eax, dword [ebp - 0x334]
mov eax, dword [eax]
sub eax, dword [ebp - 0x37c]
mov dword [ebp - 0x660], eax
xor edi, edi
movzx eax, byte [ebp + edi - 0x660]
add eax, esi
mov edx, esi
add dword [ebp - 0x3b0], eax
add eax, dword [ebp - 0x3ac]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3b0], eax
inc edi
cmp edi, 4
mov dword [ebp - 0x3ac], eax
jb 0x100d1159
mov edi, dword [ebp - 0x334]
add edi, 4
mov dword [ebp - 0x338], edi
jmp 0x100d1016
mov eax, dword [ebp - 0x380]
and dword [ebp - 0x338], 0
sub eax, edi
mov dword [ebp - 0x358], eax
je 0x100d1232
mov eax, dword [ebp - 0x338]
movzx eax, byte [eax + edi]
mov edx, esi
add eax, esi
add dword [ebp - 0x3b0], eax
add eax, dword [ebp - 0x3ac]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3b0], eax
inc dword [ebp - 0x338]
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x338]
cmp eax, dword [ebp - 0x358]
jb 0x100d11d3
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3b0]
mov byte [ebp + eax - 0x314], cl
inc eax
cmp eax, 0x10
jb 0x100d1236
mov eax, 0x194f1efb
mov esi, dword [ebp - 0x308]
mov edx, dword [ebp - 0x30c]
mov ecx, dword [ebp - 0x310]
mov eax, dword [ebp - 0x314]
mov dword [ebp - 0x788], eax
mov dword [ebp - 0x760], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x784], ecx
mov dword [ebp - 0x75c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x78c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x778], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x750], eax
lea eax, [ebp - 0x204]
sub eax, dword [ebp - 0x34c]
mov dword [ebp - 0x780], edx
mov dword [ebp - 0x77c], esi
mov dword [ebp - 0x758], edx
mov dword [ebp - 0x754], esi
mov dword [ebp - 0x774], edi
mov dword [ebp - 0x770], edi
mov dword [ebp - 0x76c], edi
mov dword [ebp - 0x768], edi
mov dword [ebp - 0x764], ecx
mov dword [ebp - 0x340], eax
lea edi, [ebp - 0x494]
lea esi, [ebp - 0x78c]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x464]
mov ecx, dword [ebp - 0x474]
mov eax, dword [ebp - 0x484]
mov dword [ebp - 0x334], 2
mov edx, dword [ebp - 0x494]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x494], edx
mov edi, dword [ebp - 0x480]
mov edx, dword [ebp - 0x490]
add edx, edi
rol edx, 7
xor dword [ebp - 0x470], edx
mov edx, edi
mov edi, dword [ebp - 0x470]
add edx, edi
rol edx, 9
xor dword [ebp - 0x460], edx
mov edx, edi
mov edi, dword [ebp - 0x460]
add edi, edx
mov edx, dword [ebp - 0x460]
rol edi, 0xd
xor dword [ebp - 0x490], edi
mov edi, dword [ebp - 0x490]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x46c]
xor dword [ebp - 0x480], edx
mov edx, dword [ebp - 0x47c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x45c], edx
mov edx, edi
mov edi, dword [ebp - 0x45c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x48c], edx
mov edx, edi
mov edi, dword [ebp - 0x48c]
add edi, edx
mov edx, dword [ebp - 0x48c]
rol edi, 0xd
xor dword [ebp - 0x47c], edi
mov edi, dword [ebp - 0x47c]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x458]
xor dword [ebp - 0x46c], edx
mov edx, dword [ebp - 0x468]
add edx, edi
rol edx, 7
xor dword [ebp - 0x488], edx
mov edx, edi
mov edi, dword [ebp - 0x488]
add edx, edi
rol edx, 9
xor dword [ebp - 0x478], edx
mov edx, edi
mov edi, dword [ebp - 0x478]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x478]
xor dword [ebp - 0x468], edi
mov edi, dword [ebp - 0x468]
add edx, edi
mov edi, dword [ebp - 0x494]
ror edx, 0xe
xor dword [ebp - 0x458], edx
mov edx, dword [ebp - 0x488]
add edx, edi
rol edx, 7
xor dword [ebp - 0x490], edx
mov edx, edi
mov edi, dword [ebp - 0x490]
add edi, edx
mov edx, dword [ebp - 0x490]
rol edi, 9
xor dword [ebp - 0x48c], edi
mov edi, dword [ebp - 0x48c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x48c]
xor dword [ebp - 0x488], edi
mov edi, dword [ebp - 0x488]
add edi, edx
mov edx, dword [ebp - 0x480]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x494], edi
rol edx, 7
xor dword [ebp - 0x47c], edx
mov edx, dword [ebp - 0x480]
mov edi, dword [ebp - 0x47c]
add edi, edx
mov edx, dword [ebp - 0x47c]
rol edi, 9
xor dword [ebp - 0x478], edi
mov edi, dword [ebp - 0x478]
add edi, edx
rol edi, 0xd
xor eax, edi
mov edx, dword [ebp - 0x478]
mov edi, dword [ebp - 0x470]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x480], edx
mov edx, dword [ebp - 0x46c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x468], edx
mov edi, dword [ebp - 0x468]
mov edx, dword [ebp - 0x46c]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x468]
xor ecx, edi
mov edi, dword [ebp - 0x45c]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x470], edx
mov edx, dword [ebp - 0x470]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x46c], edx
mov edx, dword [ebp - 0x458]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x458]
add edx, esi
rol edx, 9
xor dword [ebp - 0x460], edx
mov edx, dword [ebp - 0x460]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x45c], edx
mov edi, dword [ebp - 0x45c]
mov edx, dword [ebp - 0x460]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x458], edi
dec dword [ebp - 0x334]
jne 0x100d131b
push 0x40
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x464], esi
mov dword [ebp - 0x474], ecx
pop edx
xor eax, eax
mov ecx, dword [ebp + eax - 0x78c]
add dword [ebp + eax - 0x494], ecx
add eax, 4
cmp eax, edx
jl 0x100d15a2
mov eax, dword [ebp - 0x32c]
lea esi, [ebp - 0x494]
lea edi, [ebp - 0x204]
inc dword [ebp - 0x76c]
push 0x10
cmp eax, edx
pop ecx
rep movsd dword es:[edi], dword [esi]
jbe 0x100d1626
mov edi, dword [ebp - 0x33c]
mov esi, dword [ebp - 0x354]
mov dword [ebp - 0x334], edx
sub edi, esi
mov eax, dword [ebp - 0x340]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x334]
jne 0x100d15ec
sub dword [ebp - 0x32c], edx
add dword [ebp - 0x33c], edx
add dword [ebp - 0x354], edx
sub dword [ebp - 0x340], edx
jmp 0x100d12ee
test eax, eax
jbe 0x100d165d
lea edi, [ebp - 0x204]
mov ecx, dword [ebp - 0x33c]
mov esi, dword [ebp - 0x354]
sub edi, esi
mov dword [ebp - 0x334], eax
sub ecx, esi
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x334]
jne 0x100d1646
mov eax, dword [ebp - 0x370]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d171b
call fcn.1004ad05
mov esi, 0x100f1b6e
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
mov dword [eax + 8], esi
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d16ad
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x378]
inc edx
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x358], 0
mov eax, edi
jae 0x100d00bb
mov ecx, dword [ebp - 0x358]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d1707
jmp 0x100d00bb
mov eax, dword [0x1001256c]
mov edi, dword [ebp - 0x34c]
sub edi, dword [ebp - 0x344]
mov dword [ebp - 0x334], edi
sub ebx, eax
mov dword [ebp - 0x370], ebx
jne 0x100d1744
test edi, edi
je 0x100d01af
mov esi, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x330]
sub esi, dword [ebp - 0x34c]
add eax, ecx
mov ecx, dword [0x10103928]
mov dword [ebp - 0x660], eax
xor ebx, ebx
dec ecx
js 0x100d17a0
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d1791
lea ecx, [eax - 1]
jmp 0x100d1796
jbe 0x100d17a8
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d176f
mov edi, dword [ebp - 0x334]
mov dword [ebp - 0x378], ebx
jmp 0x100d181a
mov edi, dword [ebp - 0x334]
mov dword [ebp - 0x378], eax
jmp 0x100d181a
mov eax, dword [ebp - 0x378]
mov eax, dword [eax*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x660]
jae 0x100d01af
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d1806
dec ecx
je 0x100d1802
dec ecx
jne 0x100d180e
mov edx, dword [ebp - 0x370]
jmp 0x100d180e
mov edx, edi
jmp 0x100d180e
mov edx, dword [ebp - 0x370]
sub edx, edi
dec eax
dec eax
jne 0x100d1814
add dword [ebx], edx
inc dword [ebp - 0x378]
mov eax, dword [ebp - 0x378]
cmp eax, dword [0x10103928]
jb 0x100d17b6
jmp 0x100d01af
cmp dword [ebp - 0x34c], ebx
jb 0x100d6503
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp dword [ebp - 0x34c], eax
jae 0x100d236b
mov esi, dword [0x10105834]
mov edi, dword [ebp - 0x34c]
and dword [ebp - 0x32c], 0
sub edi, ebx
dec esi
js 0x100d18a6
mov eax, dword [ebp - 0x32c]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1009f630]
mov dword [ebp - 0x358], edx
mov edx, dword [edx]
and edx, ecx
cmp edi, edx
jae 0x100d1891
lea esi, [eax - 1]
jmp 0x100d189e
jbe 0x100d1a58
inc eax
mov dword [ebp - 0x32c], eax
cmp esi, dword [ebp - 0x32c]
jge 0x100d186a
xor edx, edx
test edx, edx
je 0x100d236b
mov eax, dword [edx]
mov ecx, eax
shr eax, 4
mov edi, eax
shr ecx, 1
and ecx, 7
lea esi, [ecx + edx + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x370], eax
mov eax, dword [0x1007b9bc]
mov dword [ebp - 0x348], esi
sub eax, edi
sub dword [ebp - 0x348], ebx
lea ecx, [eax + 1]
mov dword [ebp - 0x34c], esi
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x330], edi
mov dword [ebp - 0x32c], ecx
je 0x100d1929
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d18f9
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push edi
push dword [ebp - 0x348]
mov dword [ebp - 0x340], eax
mov eax, 0x8aea500e
mov eax, dword [ebp - 0x370]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6a4], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
mov dword [ebp - 0x6a8], ecx
test edi, edi
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x32c], edi
mov dword [ebp - 0x354], esi
mov dword [ebp - 0x33c], eax
je 0x100d21ab
lea eax, [ebp - 0x6a8]
push eax
mov eax, 0x77cbf8bd
mov edx, dword [ebp - 0x6a4]
mov eax, dword [ebp - 0x6a8]
pop ecx
mov ecx, 0xfffffff
and eax, ecx
add eax, ebx
and edx, ecx
xor edi, edi
mov ecx, dword [0x1001256c]
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x390], edi
mov eax, ebx
mov dword [ebp - 0x38c], edi
sub eax, ecx
mov dword [ebp - 0x334], edx
mov dword [ebp - 0x37c], eax
jne 0x100d1a74
cmp edx, edi
jbe 0x100d1d80
mov esi, 0x35592d4d
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x344]
mov edx, 0xcaa6d2b3
movzx eax, byte [eax + edi]
sub eax, esi
add dword [ebp - 0x390], eax
add eax, dword [ebp - 0x38c]
imul eax, eax, 0xcaa6d2b3
ror eax, 0x1d
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, eax
imul edx, edx, 0xd63d
rol edx, 3
ror eax, 3
xor edx, eax
add dword [ebp - 0x390], edx
mov dword [ebp - 0x38c], edx
inc edi
cmp edi, dword [ebp - 0x334]
jb 0x100d19ef
jmp 0x100d1d80
mov eax, dword [ebp - 0x358]
mov edx, dword [eax + 4]
mov eax, dword [eax]
and edx, 0x3f
and eax, ecx
lea edx, [edx + eax + 0x10000000]
jmp 0x100d18a8
mov edi, 0xfffff000
mov ecx, dword [ebp - 0x344]
lea eax, [ecx + edx]
mov edx, dword [0x1000003c]
mov dword [ebp - 0x380], eax
lea edx, [edx + 0x100000a0]
sub ecx, ebx
mov eax, dword [edx]
mov esi, ecx
and esi, edi
mov edx, dword [edx + 4]
mov dword [ebp - 0x358], edx
mov edx, ecx
sub edx, esi
mov dword [ebp - 0x374], edx
mov edx, dword [ebp - 0x334]
add ecx, edx
mov edx, ecx
and edx, edi
sub ecx, edx
mov dword [ebp - 0x368], ecx
add eax, ebx
mov ecx, dword [ebp - 0x358]
mov dword [ebp - 0x36c], edx
add ecx, eax
mov edi, eax
mov dword [ebp - 0x364], ecx
cmp eax, ecx
je 0x100d1aea
cmp dword [edi], esi
jae 0x100d1aea
add edi, dword [edi + 4]
cmp edi, ecx
jne 0x100d1adf
and dword [ebp - 0x35c], 0
cmp edi, ecx
je 0x100d1b26
cmp dword [edi], esi
jne 0x100d1b26
mov esi, dword [edi + 4]
sub esi, 8
shr esi, 1
je 0x100d1b26
lea ecx, [edi + 8]
movzx eax, word [ecx]
and eax, 0xfff
cmp eax, dword [ebp - 0x374]
jae 0x100d1b26
inc dword [ebp - 0x35c]
inc ecx
inc ecx
cmp dword [ebp - 0x35c], esi
jne 0x100d1b06
mov esi, 0x35592d4d
mov ecx, 0x7fffffff
jmp 0x100d1b38
mov edx, dword [ebp - 0x36c]
cmp edi, dword [ebp - 0x364]
je 0x100d1d06
cmp dword [edi], edx
ja 0x100d1d06
mov eax, dword [edi + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x35c], eax
jne 0x100d1b82
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x364]
je 0x100d1d06
mov eax, dword [ebp - 0x36c]
cmp dword [edi], eax
ja 0x100d1d06
and dword [ebp - 0x35c], 0
jmp 0x100d1b4c
mov eax, dword [ebp - 0x36c]
cmp dword [edi], eax
jne 0x100d1ba8
mov eax, dword [ebp - 0x35c]
movzx eax, word [edi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x368]
jae 0x100d1d06
mov edx, dword [ebp - 0x35c]
mov eax, 0xf000
inc dword [ebp - 0x35c]
test word [edi + edx*2 + 8], ax
je 0x100d1b32
and dword [ebp - 0x338], 0
lea eax, [edi + edx*2 + 8]
movzx eax, word [eax]
mov edx, dword [edi]
and eax, 0xfff
lea eax, [eax + edx + 0x10000000]
mov dword [ebp - 0x334], eax
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x358], eax
je 0x100d1c69
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x338]
movzx eax, byte [eax + edx]
sub eax, esi
add dword [ebp - 0x390], eax
add eax, dword [ebp - 0x38c]
mov edx, 0xcaa6d2b3
imul eax, eax, 0xcaa6d2b3
ror eax, 0x1d
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, eax
imul edx, edx, 0xd63d
rol edx, 3
ror eax, 3
xor edx, eax
add dword [ebp - 0x390], edx
inc dword [ebp - 0x338]
mov eax, dword [ebp - 0x338]
mov dword [ebp - 0x38c], edx
cmp eax, dword [ebp - 0x358]
jb 0x100d1bf4
mov eax, dword [ebp - 0x334]
mov eax, dword [eax]
sub eax, dword [ebp - 0x37c]
and dword [ebp - 0x338], 0
mov dword [ebp - 0x65c], eax
mov edx, 0xcaa6d2b3
mov eax, dword [ebp - 0x338]
movzx eax, byte [ebp + eax - 0x65c]
sub eax, esi
add dword [ebp - 0x390], eax
add eax, dword [ebp - 0x38c]
imul eax, eax, 0xcaa6d2b3
ror eax, 0x1d
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, eax
imul edx, edx, 0xd63d
rol edx, 3
ror eax, 3
xor edx, eax
add dword [ebp - 0x390], edx
inc dword [ebp - 0x338]
cmp dword [ebp - 0x338], 4
mov dword [ebp - 0x38c], edx
jb 0x100d1c84
mov eax, dword [ebp - 0x334]
add eax, 4
mov dword [ebp - 0x344], eax
jmp 0x100d1b32
mov eax, dword [ebp - 0x380]
xor edi, edi
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x358], eax
je 0x100d1d80
mov edx, 0xcaa6d2b3
mov eax, dword [ebp - 0x344]
movzx eax, byte [eax + edi]
sub eax, esi
add dword [ebp - 0x390], eax
add eax, dword [ebp - 0x38c]
imul eax, eax, 0xcaa6d2b3
ror eax, 0x1d
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, eax
imul edx, edx, 0xd63d
rol edx, 3
ror eax, 3
xor edx, eax
add dword [ebp - 0x390], edx
mov dword [ebp - 0x38c], edx
inc edi
cmp edi, dword [ebp - 0x358]
jb 0x100d1d1c
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x390]
mov byte [ebp + eax - 0x2a4], cl
inc eax
cmp eax, 0x10
jb 0x100d1d84
mov eax, 0x7b18c47c
mov ecx, dword [ebp - 0x2a0]
mov esi, dword [ebp - 0x298]
mov edx, dword [ebp - 0x29c]
mov eax, dword [ebp - 0x2a4]
mov dword [ebp - 0x888], eax
mov dword [ebp - 0x860], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x884], ecx
mov dword [ebp - 0x85c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x88c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x878], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x850], eax
lea eax, [ebp - 0x284]
sub eax, dword [ebp - 0x34c]
mov dword [ebp - 0x880], edx
mov dword [ebp - 0x87c], esi
mov dword [ebp - 0x858], edx
mov dword [ebp - 0x854], esi
mov dword [ebp - 0x874], edi
mov dword [ebp - 0x870], edi
mov dword [ebp - 0x86c], edi
mov dword [ebp - 0x868], edi
mov dword [ebp - 0x864], ecx
mov dword [ebp - 0x338], eax
lea edi, [ebp - 0x554]
push 0x10
lea esi, [ebp - 0x88c]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x524]
mov eax, dword [ebp - 0x544]
mov ecx, dword [ebp - 0x534]
mov dword [ebp - 0x334], 3
mov edx, dword [ebp - 0x554]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x554], edx
mov edi, dword [ebp - 0x540]
mov edx, dword [ebp - 0x550]
add edx, edi
rol edx, 7
xor dword [ebp - 0x530], edx
mov edx, edi
mov edi, dword [ebp - 0x530]
add edx, edi
rol edx, 9
xor dword [ebp - 0x520], edx
mov edx, edi
mov edi, dword [ebp - 0x520]
add edi, edx
mov edx, dword [ebp - 0x520]
rol edi, 0xd
xor dword [ebp - 0x550], edi
mov edi, dword [ebp - 0x550]
add edx, edi
mov edi, dword [ebp - 0x52c]
ror edx, 0xe
xor dword [ebp - 0x540], edx
mov edx, dword [ebp - 0x53c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x51c], edx
mov edx, edi
mov edi, dword [ebp - 0x51c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x54c], edx
mov edx, edi
mov edi, dword [ebp - 0x54c]
add edi, edx
mov edx, dword [ebp - 0x54c]
rol edi, 0xd
xor dword [ebp - 0x53c], edi
mov edi, dword [ebp - 0x53c]
add edx, edi
mov edi, dword [ebp - 0x518]
ror edx, 0xe
xor dword [ebp - 0x52c], edx
mov edx, dword [ebp - 0x528]
add edx, edi
rol edx, 7
xor dword [ebp - 0x548], edx
mov edx, edi
mov edi, dword [ebp - 0x548]
add edx, edi
rol edx, 9
xor dword [ebp - 0x538], edx
mov edx, edi
mov edi, dword [ebp - 0x538]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x538]
xor dword [ebp - 0x528], edi
mov edi, dword [ebp - 0x528]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x554]
xor dword [ebp - 0x518], edx
mov edx, dword [ebp - 0x548]
add edx, edi
rol edx, 7
xor dword [ebp - 0x550], edx
mov edx, edi
mov edi, dword [ebp - 0x550]
add edi, edx
mov edx, dword [ebp - 0x550]
rol edi, 9
xor dword [ebp - 0x54c], edi
mov edi, dword [ebp - 0x54c]
add edi, edx
mov edx, dword [ebp - 0x54c]
rol edi, 0xd
xor dword [ebp - 0x548], edi
mov edi, dword [ebp - 0x548]
add edi, edx
mov edx, dword [ebp - 0x540]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x554], edi
rol edx, 7
xor dword [ebp - 0x53c], edx
mov edi, dword [ebp - 0x53c]
mov edx, dword [ebp - 0x540]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x53c]
xor dword [ebp - 0x538], edi
mov edi, dword [ebp - 0x538]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x538]
xor eax, edi
mov edi, dword [ebp - 0x530]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x540], edx
mov edx, dword [ebp - 0x52c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x528], edx
mov edi, dword [ebp - 0x528]
mov edx, dword [ebp - 0x52c]
add edi, edx
rol edi, 9
xor ecx, edi
mov edx, dword [ebp - 0x528]
mov edi, dword [ebp - 0x51c]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x530], edx
mov edx, dword [ebp - 0x530]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x52c], edx
mov edx, dword [ebp - 0x518]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x518]
add edx, esi
rol edx, 9
xor dword [ebp - 0x520], edx
mov edx, dword [ebp - 0x520]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x51c], edx
mov edi, dword [ebp - 0x51c]
mov edx, dword [ebp - 0x520]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x518], edi
dec dword [ebp - 0x334]
jne 0x100d1e69
push 0x40
mov dword [ebp - 0x544], eax
xor eax, eax
mov dword [ebp - 0x524], esi
mov dword [ebp - 0x534], ecx
pop edx
mov ecx, dword [ebp + eax - 0x88c]
add dword [ebp + eax - 0x554], ecx
add eax, 4
cmp eax, edx
jl 0x100d20f0
mov eax, dword [ebp - 0x32c]
lea edi, [ebp - 0x284]
inc dword [ebp - 0x86c]
lea esi, [ebp - 0x554]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
cmp eax, edx
jbe 0x100d2174
mov esi, dword [ebp - 0x354]
mov edi, dword [ebp - 0x33c]
sub edi, esi
mov dword [ebp - 0x334], edx
mov eax, dword [ebp - 0x338]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x334]
jne 0x100d213a
sub dword [ebp - 0x32c], edx
add dword [ebp - 0x33c], edx
add dword [ebp - 0x354], edx
sub dword [ebp - 0x338], edx
jmp 0x100d1e3c
test eax, eax
jbe 0x100d21ab
mov esi, dword [ebp - 0x354]
lea edi, [ebp - 0x284]
mov ecx, dword [ebp - 0x33c]
sub edi, esi
sub ecx, esi
mov dword [ebp - 0x334], eax
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x334]
jne 0x100d2194
mov eax, dword [ebp - 0x370]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d2269
call fcn.1004ad05
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x3d4]
mov esi, 0x100f1b6e
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d21fb
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x378]
inc edx
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x358], 0
mov eax, edi
jae 0x100d00bb
mov ecx, dword [ebp - 0x358]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d2255
jmp 0x100d00bb
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x340]
mov ecx, dword [0x1001256c]
mov dword [ebp - 0x370], eax
sub ebx, ecx
mov dword [ebp - 0x334], ebx
jne 0x100d2293
test eax, eax
je 0x100d2356
mov esi, dword [ebp - 0x340]
sub esi, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x348]
add eax, ecx
xor ebx, ebx
mov ecx, dword [0x10103928]
mov dword [ebp - 0x65c], eax
dec ecx
js 0x100d22e9
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d22e0
lea ecx, [eax - 1]
jmp 0x100d22e5
jbe 0x100d22ed
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d22be
mov edi, ebx
jmp 0x100d234e
mov edi, eax
jmp 0x100d234e
mov eax, dword [edi*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x65c]
jae 0x100d2356
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d233b
dec ecx
je 0x100d2333
dec ecx
jne 0x100d2347
mov edx, dword [ebp - 0x334]
jmp 0x100d2347
mov edx, dword [ebp - 0x370]
jmp 0x100d2347
mov edx, dword [ebp - 0x334]
sub edx, dword [ebp - 0x370]
dec eax
dec eax
jne 0x100d234d
add dword [ebx], edx
inc edi
cmp edi, dword [0x10103928]
jb 0x100d22f1
mov eax, dword [0x1007b9bc]
mov eax, 0x38eb9f66
mov eax, dword [ebp - 0x340]
jmp 0x100d6598
cmp dword [ebp - 0x34c], ebx
jb 0x100d6503
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp dword [ebp - 0x34c], eax
jae 0x100d2eb9
mov edi, dword [ebp - 0x34c]
mov esi, dword [0x100874b8]
and dword [ebp - 0x32c], 0
sub edi, ebx
dec esi
js 0x100d23e5
mov eax, dword [ebp - 0x32c]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1004cbe8]
mov dword [ebp - 0x358], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x100d23d0
lea esi, [eax - 1]
jmp 0x100d23dd
jbe 0x100d258e
inc eax
mov dword [ebp - 0x32c], eax
cmp esi, dword [ebp - 0x32c]
jge 0x100d23a8
xor edx, edx
test edx, edx
je 0x100d2eb9
mov eax, dword [edx]
mov ecx, eax
shr eax, 4
shr ecx, 1
mov edi, eax
and ecx, 7
lea esi, [ecx + edx + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x330], eax
mov eax, dword [0x1007b9bc]
mov dword [ebp - 0x348], esi
sub eax, edi
lea ecx, [eax + 1]
sub dword [ebp - 0x348], ebx
mov dword [ebp - 0x34c], esi
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x350], edi
mov dword [ebp - 0x32c], ecx
je 0x100d2468
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d2438
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push edi
push dword [ebp - 0x348]
mov dword [ebp - 0x33c], eax
mov eax, 0x9b6c6b55
mov eax, dword [ebp - 0x330]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x684], eax
mov eax, dword [ebp - 0x33c]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x688], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x354], edi
mov dword [ebp - 0x32c], esi
mov dword [ebp - 0x338], eax
je 0x100d2cdd
lea eax, [ebp - 0x688]
push eax
mov eax, 0x71a8d249
mov edx, dword [ebp - 0x684]
mov eax, dword [ebp - 0x688]
pop ecx
mov ecx, 0xfffffff
and eax, ecx
add eax, ebx
and edx, ecx
xor edi, edi
mov ecx, dword [0x1001256c]
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x398], edi
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x394], edi
mov dword [ebp - 0x334], edx
mov dword [ebp - 0x37c], eax
jne 0x100d25aa
cmp edx, edi
jbe 0x100d289b
mov ecx, 0x7fffffff
mov esi, 0x13023717
mov eax, dword [ebp - 0x344]
movzx edx, byte [edi + eax]
sub edx, esi
add dword [ebp - 0x398], edx
add edx, dword [ebp - 0x394]
mov eax, edx
imul eax, eax, 0x5858
rol eax, 9
ror edx, 9
xor eax, edx
mov edx, 0xecfdc8e9
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x398], eax
inc edi
mov dword [ebp - 0x394], eax
cmp edi, dword [ebp - 0x334]
jb 0x100d252e
jmp 0x100d289b
mov eax, dword [ebp - 0x358]
mov edx, dword [eax + 4]
mov eax, dword [eax]
and edx, ecx
and eax, 0x3f
lea edx, [edx + eax + 0x10000000]
jmp 0x100d23e7
mov ecx, dword [ebp - 0x344]
lea eax, [ecx + edx]
sub ecx, ebx
mov esi, ecx
mov edi, 0xfffff000
and esi, edi
mov edx, dword [0x1000003c]
lea edx, [edx + 0x100000a0]
mov dword [ebp - 0x380], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x358], edx
mov edx, ecx
sub edx, esi
mov dword [ebp - 0x374], edx
mov edx, dword [ebp - 0x334]
add ecx, edx
mov edx, ecx
and edx, edi
sub ecx, edx
mov dword [ebp - 0x368], ecx
add eax, ebx
mov edi, eax
mov ecx, dword [ebp - 0x358]
mov dword [ebp - 0x36c], edx
add ecx, eax
cmp eax, ecx
mov dword [ebp - 0x364], ecx
je 0x100d2620
cmp dword [edi], esi
jae 0x100d2620
add edi, dword [edi + 4]
cmp edi, ecx
jne 0x100d2615
and dword [ebp - 0x35c], 0
cmp edi, ecx
je 0x100d265c
cmp dword [edi], esi
jne 0x100d265c
mov esi, dword [edi + 4]
sub esi, 8
shr esi, 1
je 0x100d265c
lea ecx, [edi + 8]
movzx eax, word [ecx]
and eax, 0xfff
cmp eax, dword [ebp - 0x374]
jae 0x100d265c
inc dword [ebp - 0x35c]
inc ecx
inc ecx
cmp dword [ebp - 0x35c], esi
jne 0x100d263c
mov esi, 0x13023717
mov ecx, 0x7fffffff
jmp 0x100d266e
mov edx, dword [ebp - 0x36c]
cmp edi, dword [ebp - 0x364]
je 0x100d282a
cmp dword [edi], edx
ja 0x100d282a
mov eax, dword [edi + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x35c], eax
jne 0x100d26b8
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x364]
je 0x100d282a
mov eax, dword [ebp - 0x36c]
cmp dword [edi], eax
ja 0x100d282a
and dword [ebp - 0x35c], 0
jmp 0x100d2682
mov eax, dword [ebp - 0x36c]
cmp dword [edi], eax
jne 0x100d26de
mov eax, dword [ebp - 0x35c]
movzx eax, word [edi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x368]
jae 0x100d282a
mov edx, dword [ebp - 0x35c]
mov eax, 0xf000
inc dword [ebp - 0x35c]
test word [edi + edx*2 + 8], ax
je 0x100d2668
lea eax, [edi + edx*2 + 8]
and dword [ebp - 0x340], 0
mov edx, dword [edi]
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x10000000]
mov dword [ebp - 0x334], eax
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x358], eax
je 0x100d2796
mov eax, dword [ebp - 0x340]
mov edx, dword [ebp - 0x344]
movzx edx, byte [eax + edx]
sub edx, esi
add dword [ebp - 0x398], edx
add edx, dword [ebp - 0x394]
mov eax, edx
imul eax, eax, 0x5858
rol eax, 9
ror edx, 9
xor eax, edx
mov edx, 0xecfdc8e9
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x398], eax
inc dword [ebp - 0x340]
mov dword [ebp - 0x394], eax
mov eax, dword [ebp - 0x340]
cmp eax, dword [ebp - 0x358]
jb 0x100d272a
mov eax, dword [ebp - 0x334]
mov eax, dword [eax]
sub eax, dword [ebp - 0x37c]
and dword [ebp - 0x340], 0
mov dword [ebp - 0x6c4], eax
mov eax, dword [ebp - 0x340]
movzx edx, byte [ebp + eax - 0x6c4]
sub edx, esi
add dword [ebp - 0x398], edx
add edx, dword [ebp - 0x394]
mov eax, edx
imul eax, eax, 0x5858
rol eax, 9
ror edx, 9
xor eax, edx
mov edx, 0xecfdc8e9
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x398], eax
inc dword [ebp - 0x340]
cmp dword [ebp - 0x340], 4
mov dword [ebp - 0x394], eax
jb 0x100d27b1
mov eax, dword [ebp - 0x334]
add eax, 4
mov dword [ebp - 0x344], eax
jmp 0x100d2668
mov eax, dword [ebp - 0x380]
xor edi, edi
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x358], eax
je 0x100d289b
mov eax, dword [ebp - 0x344]
movzx edx, byte [edi + eax]
sub edx, esi
add dword [ebp - 0x398], edx
add edx, dword [ebp - 0x394]
mov eax, edx
imul eax, eax, 0x5858
rol eax, 9
ror edx, 9
xor eax, edx
mov edx, 0xecfdc8e9
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x398], eax
inc edi
mov dword [ebp - 0x394], eax
cmp edi, dword [ebp - 0x358]
jb 0x100d2840
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x398]
mov byte [ebp + eax - 0x2c4], cl
inc eax
cmp eax, 0x10
jb 0x100d289f
mov eax, 0xf5e00e8d
mov ecx, dword [ebp - 0x2c0]
mov edx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x2c4]
mov esi, dword [ebp - 0x2b8]
mov dword [ebp - 0x808], eax
mov dword [ebp - 0x7e0], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x804], ecx
mov dword [ebp - 0x7dc], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x80c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x7f8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x7d0], eax
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x7e4], ecx
lea ecx, [ebp - 0x104]
sub eax, ecx
mov dword [ebp - 0x370], eax
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x33c]
mov dword [ebp - 0x800], edx
mov dword [ebp - 0x7fc], esi
mov dword [ebp - 0x7d8], edx
mov dword [ebp - 0x7d4], esi
mov dword [ebp - 0x7f4], edi
mov dword [ebp - 0x7f0], edi
mov dword [ebp - 0x7ec], edi
mov dword [ebp - 0x7e8], edi
mov dword [ebp - 0x358], eax
lea edi, [ebp - 0x594]
push 0x10
lea esi, [ebp - 0x80c]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x584]
mov esi, dword [ebp - 0x564]
mov ecx, dword [ebp - 0x574]
mov dword [ebp - 0x334], 2
mov edx, dword [ebp - 0x594]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x594], edx
mov edx, dword [ebp - 0x590]
mov edi, dword [ebp - 0x580]
add edx, edi
rol edx, 7
xor dword [ebp - 0x570], edx
mov edx, edi
mov edi, dword [ebp - 0x570]
add edx, edi
rol edx, 9
xor dword [ebp - 0x560], edx
mov edx, edi
mov edi, dword [ebp - 0x560]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x560]
xor dword [ebp - 0x590], edi
mov edi, dword [ebp - 0x590]
add edx, edi
mov edi, dword [ebp - 0x56c]
ror edx, 0xe
xor dword [ebp - 0x580], edx
mov edx, dword [ebp - 0x57c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x55c], edx
mov edx, edi
mov edi, dword [ebp - 0x55c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x58c], edx
mov edx, edi
mov edi, dword [ebp - 0x58c]
add edi, edx
mov edx, dword [ebp - 0x58c]
rol edi, 0xd
xor dword [ebp - 0x57c], edi
mov edi, dword [ebp - 0x57c]
add edx, edi
mov edi, dword [ebp - 0x558]
ror edx, 0xe
xor dword [ebp - 0x56c], edx
mov edx, dword [ebp - 0x568]
add edx, edi
rol edx, 7
xor dword [ebp - 0x588], edx
mov edx, edi
mov edi, dword [ebp - 0x588]
add edx, edi
rol edx, 9
xor dword [ebp - 0x578], edx
mov edx, edi
mov edi, dword [ebp - 0x578]
add edi, edx
mov edx, dword [ebp - 0x578]
rol edi, 0xd
xor dword [ebp - 0x568], edi
mov edi, dword [ebp - 0x568]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x594]
xor dword [ebp - 0x558], edx
mov edx, dword [ebp - 0x588]
add edx, edi
rol edx, 7
xor dword [ebp - 0x590], edx
mov edx, edi
mov edi, dword [ebp - 0x590]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x590]
xor dword [ebp - 0x58c], edi
mov edi, dword [ebp - 0x58c]
add edi, edx
mov edx, dword [ebp - 0x58c]
rol edi, 0xd
xor dword [ebp - 0x588], edi
mov edi, dword [ebp - 0x588]
add edi, edx
mov edx, dword [ebp - 0x580]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x594], edi
rol edx, 7
xor dword [ebp - 0x57c], edx
mov edx, dword [ebp - 0x580]
mov edi, dword [ebp - 0x57c]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x57c]
xor dword [ebp - 0x578], edi
mov edi, dword [ebp - 0x578]
add edi, edx
rol edi, 0xd
xor eax, edi
mov edi, dword [ebp - 0x570]
mov edx, dword [ebp - 0x578]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x580], edx
mov edx, dword [ebp - 0x56c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x568], edx
mov edx, dword [ebp - 0x56c]
mov edi, dword [ebp - 0x568]
add edi, edx
mov edx, dword [ebp - 0x568]
rol edi, 9
xor ecx, edi
mov edi, dword [ebp - 0x55c]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x570], edx
mov edx, dword [ebp - 0x570]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x56c], edx
mov edx, dword [ebp - 0x558]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x558]
add edx, esi
rol edx, 9
xor dword [ebp - 0x560], edx
mov edx, dword [ebp - 0x560]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x55c], edx
mov edx, dword [ebp - 0x560]
mov edi, dword [ebp - 0x55c]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x558], edi
dec dword [ebp - 0x334]
jne 0x100d2998
mov dword [ebp - 0x584], eax
xor eax, eax
mov dword [ebp - 0x564], esi
mov dword [ebp - 0x574], ecx
mov ecx, dword [ebp + eax - 0x80c]
add dword [ebp + eax - 0x594], ecx
add eax, 4
cmp eax, 0x40
jl 0x100d2c1c
lea esi, [ebp - 0x594]
lea edi, [ebp - 0x104]
inc dword [ebp - 0x7ec]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp - 0x354], 0x40
jbe 0x100d2ca0
mov eax, dword [ebp - 0x358]
mov edi, dword [ebp - 0x370]
lea edx, [eax + edi]
lea ecx, [ebp + esi - 0x104]
mov al, byte [ecx + edx]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
mov byte [ecx + edi], al
inc esi
cmp esi, 0x40
jb 0x100d2c63
push 0x40
pop eax
sub dword [ebp - 0x354], eax
add dword [ebp - 0x338], eax
add edi, eax
add dword [ebp - 0x32c], eax
mov dword [ebp - 0x370], edi
jmp 0x100d296b
cmp dword [ebp - 0x354], 0
jbe 0x100d2cdd
mov edi, dword [ebp - 0x32c]
mov edx, dword [ebp - 0x338]
lea eax, [ebp - 0x104]
sub edi, eax
sub edx, eax
lea ecx, [ebp + esi - 0x104]
mov al, byte [ecx + edi]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
mov byte [ecx + edx], al
inc esi
cmp esi, dword [ebp - 0x354]
jb 0x100d2cbf
mov eax, dword [ebp - 0x330]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d2d9b
call fcn.1004ad05
mov esi, 0x100f1b6e
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x3d4]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
xor eax, eax
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d2d2d
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x378]
inc edx
mov dword [eax], edx
cmp edi, ebx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x358], 0
mov eax, edi
jae 0x100d00bb
mov ecx, dword [ebp - 0x358]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d2d87
jmp 0x100d00bb
mov eax, dword [0x1001256c]
mov edi, dword [ebp - 0x34c]
sub edi, dword [ebp - 0x33c]
sub ebx, eax
mov dword [ebp - 0x330], edi
mov dword [ebp - 0x334], ebx
jne 0x100d2dc4
test edi, edi
je 0x100d2ea4
mov esi, dword [ebp - 0x33c]
mov eax, dword [ebp - 0x348]
mov ecx, dword [ebp - 0x350]
sub esi, dword [ebp - 0x34c]
add eax, ecx
xor ebx, ebx
mov ecx, dword [0x10103928]
dec ecx
mov dword [ebp - 0x350], eax
js 0x100d2e20
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d2e11
lea ecx, [eax - 1]
jmp 0x100d2e16
jbe 0x100d2e28
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d2def
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x378], ebx
jmp 0x100d2e96
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x378], eax
jmp 0x100d2e96
mov eax, dword [ebp - 0x378]
mov eax, dword [eax*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x350]
jae 0x100d2ea4
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d2e82
dec ecx
je 0x100d2e7e
dec ecx
jne 0x100d2e8a
mov edx, dword [ebp - 0x334]
jmp 0x100d2e8a
mov edx, edi
jmp 0x100d2e8a
mov edx, dword [ebp - 0x334]
sub edx, edi
dec eax
dec eax
jne 0x100d2e90
add dword [ebx], edx
inc dword [ebp - 0x378]
mov eax, dword [ebp - 0x378]
cmp eax, dword [0x10103928]
jb 0x100d2e36
mov eax, dword [0x1007b9bc]
mov eax, 0xeedfc89e
mov eax, dword [ebp - 0x33c]
jmp 0x100d6598
cmp dword [ebp - 0x34c], ebx
jb 0x100d6503
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp dword [ebp - 0x34c], eax
jae 0x100d3967
mov esi, dword [0x1000444c]
mov edi, dword [ebp - 0x34c]
and dword [ebp - 0x32c], 0
sub edi, ebx
dec esi
js 0x100d2f33
mov eax, dword [ebp - 0x32c]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x10064d10]
mov dword [ebp - 0x350], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x100d2f1e
lea esi, [eax - 1]
jmp 0x100d2f2b
jbe 0x100d30b6
inc eax
mov dword [ebp - 0x32c], eax
cmp esi, dword [ebp - 0x32c]
jge 0x100d2ef6
xor eax, eax
test eax, eax
je 0x100d3967
mov edx, dword [eax]
shr edx, 1
mov esi, dword [eax + 4]
and esi, ecx
and edx, 7
lea edi, [edx + eax + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x334], eax
mov eax, dword [0x1007b9bc]
sub eax, esi
mov dword [ebp - 0x348], edi
sub dword [ebp - 0x348], ebx
lea ecx, [eax + 1]
mov dword [ebp - 0x34c], edi
mov dword [ebp - 0x380], esi
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x32c], ecx
je 0x100d2fb4
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d2f84
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push esi
push dword [ebp - 0x348]
mov dword [ebp - 0x344], eax
mov eax, 0x141174a6
mov eax, dword [ebp - 0x334]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x674], eax
mov eax, dword [ebp - 0x344]
add esp, 0xc
mov dword [ebp - 0x678], ecx
test esi, esi
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x33c], esi
mov dword [ebp - 0x338], edi
mov dword [ebp - 0x354], eax
je 0x100d3797
lea eax, [ebp - 0x678]
push eax
mov eax, 0x6dc79841
mov edx, dword [0x1001256c]
mov edi, dword [ebp - 0x678]
pop ecx
mov ecx, dword [ebp - 0x674]
mov eax, 0xfffffff
and ecx, eax
and edi, eax
mov eax, ebx
xor esi, esi
mov dword [ebp - 0x3a8], esi
add edi, ebx
mov dword [ebp - 0x3a4], esi
sub eax, edx
mov dword [ebp - 0x330], ecx
mov dword [ebp - 0x374], eax
jne 0x100d30d5
cmp ecx, esi
jbe 0x100d336c
mov ecx, 0x48863bd6
movzx eax, byte [edi + esi]
add eax, ecx
mov edx, ecx
add dword [ebp - 0x3a8], eax
add eax, dword [ebp - 0x3a4]
imul eax, eax, 0x48863bd6
ror eax, 9
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xede9
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x3a8], edx
mov dword [ebp - 0x3a4], edx
inc esi
cmp esi, dword [ebp - 0x330]
jb 0x100d306b
jmp 0x100d336c
mov eax, dword [ebp - 0x350]
mov edx, dword [eax]
mov eax, dword [eax + 4]
shr edx, 2
and edx, 0x3f
and eax, ecx
lea eax, [eax + edx + 0x10000000]
jmp 0x100d2f35
lea eax, [edi + ecx]
mov edx, dword [0x1000003c]
mov dword [ebp - 0x37c], eax
lea edx, [edx + 0x100000a0]
mov ecx, edi
sub ecx, ebx
mov esi, ecx
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x350], edx
mov edx, ecx
and edx, 0xfffff000
sub esi, edx
mov dword [ebp - 0x358], esi
mov esi, dword [ebp - 0x330]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
sub ecx, esi
add eax, ebx
mov dword [ebp - 0x368], ecx
mov ecx, dword [ebp - 0x350]
mov dword [ebp - 0x36c], esi
add ecx, eax
mov esi, eax
cmp eax, ecx
mov dword [ebp - 0x364], ecx
je 0x100d314e
cmp dword [esi], edx
jae 0x100d314e
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x364]
jne 0x100d313f
and dword [ebp - 0x35c], 0
cmp esi, dword [ebp - 0x364]
je 0x100d318f
cmp dword [esi], edx
jne 0x100d318f
mov ecx, dword [esi + 4]
sub ecx, 8
shr ecx, 1
je 0x100d318f
lea eax, [esi + 8]
movzx edx, word [eax]
and edx, 0xfff
cmp edx, dword [ebp - 0x358]
jae 0x100d318f
inc dword [ebp - 0x35c]
inc eax
inc eax
cmp dword [ebp - 0x35c], ecx
jne 0x100d316e
mov ecx, 0x48863bd6
cmp esi, dword [ebp - 0x364]
je 0x100d3314
mov eax, dword [ebp - 0x36c]
cmp dword [esi], eax
ja 0x100d3314
mov eax, dword [esi + 4]
lea edx, [eax - 8]
shr edx, 1
mov eax, dword [ebp - 0x35c]
cmp eax, edx
jne 0x100d31e6
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x364]
je 0x100d3314
mov eax, dword [ebp - 0x36c]
cmp dword [esi], eax
ja 0x100d3314
and dword [ebp - 0x35c], 0
jmp 0x100d31ae
mov edx, dword [ebp - 0x36c]
cmp dword [esi], edx
jne 0x100d3206
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x368]
jae 0x100d3314
mov edx, 0xf000
mov eax, dword [ebp - 0x35c]
inc dword [ebp - 0x35c]
test word [esi + eax*2 + 8], dx
je 0x100d3194
mov edx, dword [esi]
lea eax, [esi + eax*2 + 8]
and dword [ebp - 0x340], 0
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x10000000]
mov dword [ebp - 0x32c], eax
sub dword [ebp - 0x32c], edi
mov dword [ebp - 0x330], eax
je 0x100d32a9
mov edx, ecx
mov eax, dword [ebp - 0x340]
movzx eax, byte [eax + edi]
add eax, ecx
add dword [ebp - 0x3a8], eax
add eax, dword [ebp - 0x3a4]
imul eax, eax, 0x48863bd6
ror eax, 9
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xede9
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x3a8], edx
inc dword [ebp - 0x340]
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x3a4], edx
cmp eax, dword [ebp - 0x32c]
jb 0x100d3252
mov eax, dword [ebp - 0x330]
mov eax, dword [eax]
sub eax, dword [ebp - 0x374]
xor edi, edi
mov dword [ebp - 0x668], eax
mov edx, ecx
movzx eax, byte [ebp + edi - 0x668]
add eax, ecx
add dword [ebp - 0x3a8], eax
add eax, dword [ebp - 0x3a4]
imul eax, eax, 0x48863bd6
ror eax, 9
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xede9
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x3a8], edx
inc edi
cmp edi, 4
mov dword [ebp - 0x3a4], edx
jb 0x100d32bf
mov edi, dword [ebp - 0x330]
add edi, 4
jmp 0x100d3194
xor esi, esi
mov eax, dword [ebp - 0x37c]
sub eax, edi
mov dword [ebp - 0x350], eax
je 0x100d336c
movzx eax, byte [edi + esi]
mov edx, ecx
add eax, ecx
add dword [ebp - 0x3a8], eax
add eax, dword [ebp - 0x3a4]
imul eax, eax, 0x48863bd6
ror eax, 9
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xede9
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x3a8], edx
mov dword [ebp - 0x3a4], edx
inc esi
cmp esi, dword [ebp - 0x350]
jb 0x100d3326
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3a8]
mov byte [ebp + eax - 0x2e4], cl
inc eax
cmp eax, 0x10
jb 0x100d3370
mov eax, 0x95a9f065
mov esi, dword [ebp - 0x2d8]
mov edx, dword [ebp - 0x2dc]
mov eax, dword [ebp - 0x2e4]
mov ecx, dword [ebp - 0x2e0]
mov dword [ebp - 0x908], eax
mov dword [ebp - 0x8e0], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x904], ecx
mov dword [ebp - 0x8dc], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x90c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x8f8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x8d0], eax
lea eax, [ebp - 0x184]
sub eax, dword [ebp - 0x34c]
mov dword [ebp - 0x900], edx
mov dword [ebp - 0x8fc], esi
mov dword [ebp - 0x8d8], edx
mov dword [ebp - 0x8d4], esi
mov dword [ebp - 0x8f4], edi
mov dword [ebp - 0x8f0], edi
mov dword [ebp - 0x8ec], edi
mov dword [ebp - 0x8e8], edi
mov dword [ebp - 0x8e4], ecx
mov dword [ebp - 0x32c], eax
lea edi, [ebp - 0x414]
push 0x10
pop ecx
lea esi, [ebp - 0x90c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x404]
mov ecx, dword [ebp - 0x3f4]
mov esi, dword [ebp - 0x3e4]
mov dword [ebp - 0x330], 2
mov edx, dword [ebp - 0x414]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x414], edx
mov edi, dword [ebp - 0x400]
mov edx, dword [ebp - 0x410]
add edx, edi
rol edx, 7
xor dword [ebp - 0x3f0], edx
mov edx, edi
mov edi, dword [ebp - 0x3f0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x3e0], edx
mov edx, edi
mov edi, dword [ebp - 0x3e0]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x3e0]
xor dword [ebp - 0x410], edi
mov edi, dword [ebp - 0x410]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x3ec]
xor dword [ebp - 0x400], edx
mov edx, dword [ebp - 0x3fc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x3dc], edx
mov edx, edi
mov edi, dword [ebp - 0x3dc]
add edx, edi
rol edx, 9
xor dword [ebp - 0x40c], edx
mov edx, edi
mov edi, dword [ebp - 0x40c]
add edi, edx
mov edx, dword [ebp - 0x40c]
rol edi, 0xd
xor dword [ebp - 0x3fc], edi
mov edi, dword [ebp - 0x3fc]
add edx, edi
mov edi, dword [ebp - 0x3d8]
ror edx, 0xe
xor dword [ebp - 0x3ec], edx
mov edx, dword [ebp - 0x3e8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x408], edx
mov edx, edi
mov edi, dword [ebp - 0x408]
add edx, edi
rol edx, 9
xor dword [ebp - 0x3f8], edx
mov edx, edi
mov edi, dword [ebp - 0x3f8]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x3f8]
xor dword [ebp - 0x3e8], edi
mov edi, dword [ebp - 0x3e8]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x414]
xor dword [ebp - 0x3d8], edx
mov edx, dword [ebp - 0x408]
add edx, edi
rol edx, 7
xor dword [ebp - 0x410], edx
mov edx, edi
mov edi, dword [ebp - 0x410]
add edi, edx
mov edx, dword [ebp - 0x410]
rol edi, 9
xor dword [ebp - 0x40c], edi
mov edi, dword [ebp - 0x40c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x40c]
xor dword [ebp - 0x408], edi
mov edi, dword [ebp - 0x408]
add edi, edx
mov edx, dword [ebp - 0x400]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x414], edi
rol edx, 7
xor dword [ebp - 0x3fc], edx
mov edi, dword [ebp - 0x3fc]
mov edx, dword [ebp - 0x400]
add edi, edx
mov edx, dword [ebp - 0x3fc]
rol edi, 9
xor dword [ebp - 0x3f8], edi
mov edi, dword [ebp - 0x3f8]
add edi, edx
rol edi, 0xd
xor eax, edi
mov edx, dword [ebp - 0x3f8]
add edx, eax
ror edx, 0xe
mov edi, dword [ebp - 0x3f0]
xor dword [ebp - 0x400], edx
mov edx, dword [ebp - 0x3ec]
add edx, edi
rol edx, 7
xor dword [ebp - 0x3e8], edx
mov edx, dword [ebp - 0x3ec]
mov edi, dword [ebp - 0x3e8]
add edi, edx
mov edx, dword [ebp - 0x3e8]
rol edi, 9
xor ecx, edi
mov edi, dword [ebp - 0x3dc]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x3f0], edx
mov edx, dword [ebp - 0x3f0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x3ec], edx
mov edx, dword [ebp - 0x3d8]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x3d8]
add edx, esi
rol edx, 9
xor dword [ebp - 0x3e0], edx
mov edx, dword [ebp - 0x3e0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x3dc], edx
mov edi, dword [ebp - 0x3dc]
mov edx, dword [ebp - 0x3e0]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x3d8], edi
dec dword [ebp - 0x330]
jne 0x100d3455
push 0x40
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x3e4], esi
mov dword [ebp - 0x3f4], ecx
xor eax, eax
pop edx
mov ecx, dword [ebp + eax - 0x90c]
add dword [ebp + eax - 0x414], ecx
add eax, 4
cmp eax, edx
jl 0x100d36dc
lea edi, [ebp - 0x184]
mov eax, dword [ebp - 0x33c]
inc dword [ebp - 0x8ec]
push 0x10
pop ecx
lea esi, [ebp - 0x414]
cmp eax, edx
rep movsd dword es:[edi], dword [esi]
jbe 0x100d3760
mov esi, dword [ebp - 0x338]
mov edi, dword [ebp - 0x354]
sub edi, esi
mov dword [ebp - 0x330], edx
mov eax, dword [ebp - 0x32c]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x330]
jne 0x100d3726
sub dword [ebp - 0x33c], edx
add dword [ebp - 0x354], edx
add dword [ebp - 0x338], edx
sub dword [ebp - 0x32c], edx
jmp 0x100d3428
test eax, eax
jbe 0x100d3797
mov ecx, dword [ebp - 0x354]
lea edi, [ebp - 0x184]
mov esi, dword [ebp - 0x338]
mov dword [ebp - 0x330], eax
sub edi, esi
sub ecx, esi
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x330]
jne 0x100d3780
mov eax, dword [ebp - 0x334]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d3855
call fcn.1004ad05
mov esi, 0x100f1b6e
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
and edi, 0xfffffffc
mov dword [eax + 8], esi
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d37e7
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x350]
mov eax, dword [ebp - 0x378]
inc edx
mov dword [eax], edx
cmp edi, ebx
mov dword [eax + 0x1c], ecx
mov eax, edi
mov dword [ebp - 0x350], 0
jae 0x100d00bb
mov ecx, dword [ebp - 0x350]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d3841
jmp 0x100d00bb
mov eax, dword [0x1001256c]
mov edi, dword [ebp - 0x34c]
sub edi, dword [ebp - 0x344]
sub ebx, eax
mov dword [ebp - 0x330], edi
mov dword [ebp - 0x334], ebx
jne 0x100d387e
test edi, edi
je 0x100d01af
mov esi, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x348]
sub esi, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x380]
add eax, ecx
xor ebx, ebx
mov ecx, dword [0x10103928]
dec ecx
mov dword [ebp - 0x668], eax
js 0x100d38da
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d38cb
lea ecx, [eax - 1]
jmp 0x100d38d0
jbe 0x100d38e2
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d38a9
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x33c], ebx
jmp 0x100d3954
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x33c], eax
jmp 0x100d3954
mov eax, dword [ebp - 0x33c]
mov eax, dword [eax*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x668]
jae 0x100d01af
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d3940
dec ecx
je 0x100d393c
dec ecx
jne 0x100d3948
mov edx, dword [ebp - 0x334]
jmp 0x100d3948
mov edx, edi
jmp 0x100d3948
mov edx, dword [ebp - 0x334]
sub edx, edi
dec eax
dec eax
jne 0x100d394e
add dword [ebx], edx
inc dword [ebp - 0x33c]
mov eax, dword [ebp - 0x33c]
cmp eax, dword [0x10103928]
jb 0x100d38f0
jmp 0x100d01af
cmp dword [ebp - 0x34c], ebx
jb 0x100d6503
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp dword [ebp - 0x34c], eax
jae 0x100d449b
mov esi, dword [0x10077dc0]
mov edi, dword [ebp - 0x34c]
and dword [ebp - 0x32c], 0
sub edi, ebx
dec esi
js 0x100d39e1
mov eax, dword [ebp - 0x32c]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x10105838]
mov dword [ebp - 0x350], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x100d39cc
lea esi, [eax - 1]
jmp 0x100d39d9
jbe 0x100d3b8c
inc eax
mov dword [ebp - 0x32c], eax
cmp esi, dword [ebp - 0x32c]
jge 0x100d39a4
xor edx, edx
test edx, edx
je 0x100d449b
mov eax, dword [edx]
mov esi, eax
shr eax, 1
and eax, ecx
shr esi, 0x1d
lea esi, [esi + edx + 8]
mov edi, eax
lea eax, [esi + edi]
mov dword [ebp - 0x370], eax
mov eax, dword [0x1007b9bc]
sub eax, edi
lea ecx, [eax + 1]
mov dword [ebp - 0x348], esi
sub dword [ebp - 0x348], ebx
xor eax, eax
mov dword [ebp - 0x34c], esi
mov dword [ebp - 0x380], edi
test ecx, ecx
mov dword [ebp - 0x32c], ecx
je 0x100d3a63
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d3a33
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push edi
push dword [ebp - 0x348]
mov dword [ebp - 0x33c], eax
mov eax, 0x480840cb
mov eax, dword [ebp - 0x370]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x68c], eax
mov eax, dword [ebp - 0x33c]
add esp, 0xc
mov dword [ebp - 0x690], ecx
test edi, edi
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x354], edi
mov dword [ebp - 0x32c], esi
mov dword [ebp - 0x338], eax
je 0x100d42e7
lea eax, [ebp - 0x690]
push eax
mov eax, 0x41775401
mov edx, dword [ebp - 0x68c]
mov eax, dword [ebp - 0x690]
pop ecx
mov ecx, 0xfffffff
and eax, ecx
add eax, ebx
and edx, ecx
mov ecx, dword [0x1001256c]
mov dword [ebp - 0x344], eax
xor edi, edi
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x3b8], edi
mov dword [ebp - 0x3b4], edi
mov dword [ebp - 0x330], edx
mov dword [ebp - 0x374], eax
jne 0x100d3bab
cmp edx, edi
jbe 0x100d3ea5
mov ecx, 0x7fffffff
mov esi, 0x799186ea
mov edx, esi
mov eax, dword [ebp - 0x344]
movzx eax, byte [eax + edi]
add eax, esi
add dword [ebp - 0x3b8], eax
add eax, dword [ebp - 0x3b4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0x6d29
rol edx, 0xa
ror eax, 0xa
xor edx, eax
add dword [ebp - 0x3b8], edx
mov dword [ebp - 0x3b4], edx
inc edi
cmp edi, dword [ebp - 0x330]
jb 0x100d3b29
jmp 0x100d3ea5
mov eax, dword [ebp - 0x350]
mov edx, dword [eax]
mov eax, dword [eax + 4]
shr edx, 2
and edx, 0x3f
and eax, ecx
lea edx, [edx + eax + 0x10000000]
jmp 0x100d39e3
mov edi, 0xfffff000
mov ecx, dword [ebp - 0x344]
lea eax, [ecx + edx]
sub ecx, ebx
mov esi, ecx
and esi, edi
mov edx, dword [0x1000003c]
mov dword [ebp - 0x37c], eax
lea edx, [edx + 0x100000a0]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x350], edx
mov edx, ecx
sub edx, esi
mov dword [ebp - 0x358], edx
mov edx, dword [ebp - 0x330]
add ecx, edx
mov edx, ecx
and edx, edi
sub ecx, edx
mov dword [ebp - 0x368], ecx
mov ecx, dword [ebp - 0x350]
mov dword [ebp - 0x36c], edx
add eax, ebx
mov edi, eax
add ecx, eax
cmp eax, ecx
mov dword [ebp - 0x364], ecx
je 0x100d3c21
cmp dword [edi], esi
jae 0x100d3c21
add edi, dword [edi + 4]
cmp edi, ecx
jne 0x100d3c16
and dword [ebp - 0x35c], 0
cmp edi, ecx
je 0x100d3c5d
cmp dword [edi], esi
jne 0x100d3c5d
mov esi, dword [edi + 4]
sub esi, 8
shr esi, 1
je 0x100d3c5d
lea ecx, [edi + 8]
movzx eax, word [ecx]
and eax, 0xfff
cmp eax, dword [ebp - 0x358]
jae 0x100d3c5d
inc dword [ebp - 0x35c]
inc ecx
inc ecx
cmp dword [ebp - 0x35c], esi
jne 0x100d3c3d
mov ecx, 0x7fffffff
mov esi, 0x799186ea
jmp 0x100d3c6f
mov edx, dword [ebp - 0x36c]
cmp edi, dword [ebp - 0x364]
je 0x100d3e31
cmp dword [edi], edx
ja 0x100d3e31
mov eax, dword [edi + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x35c], eax
jne 0x100d3cb9
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x364]
je 0x100d3e31
mov eax, dword [ebp - 0x36c]
cmp dword [edi], eax
ja 0x100d3e31
and dword [ebp - 0x35c], 0
jmp 0x100d3c83
mov eax, dword [ebp - 0x36c]
cmp dword [edi], eax
jne 0x100d3cdf
mov eax, dword [ebp - 0x35c]
movzx eax, word [edi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x368]
jae 0x100d3e31
mov edx, dword [ebp - 0x35c]
inc dword [ebp - 0x35c]
mov eax, 0xf000
test word [edi + edx*2 + 8], ax
je 0x100d3c69
and dword [ebp - 0x340], 0
lea eax, [edi + edx*2 + 8]
mov edx, dword [edi]
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x10000000]
mov dword [ebp - 0x330], eax
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x350], eax
je 0x100d3d9a
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x340]
movzx eax, byte [eax + edx]
add eax, esi
mov edx, esi
add dword [ebp - 0x3b8], eax
add eax, dword [ebp - 0x3b4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0x6d29
rol edx, 0xa
ror eax, 0xa
xor edx, eax
add dword [ebp - 0x3b8], edx
inc dword [ebp - 0x340]
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x3b4], edx
cmp eax, dword [ebp - 0x350]
jb 0x100d3d2b
mov eax, dword [ebp - 0x330]
mov eax, dword [eax]
sub eax, dword [ebp - 0x374]
and dword [ebp - 0x340], 0
mov dword [ebp - 0x670], eax
mov eax, dword [ebp - 0x340]
mov edx, esi
movzx eax, byte [ebp + eax - 0x670]
add eax, esi
add dword [ebp - 0x3b8], eax
add eax, dword [ebp - 0x3b4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0x6d29
rol edx, 0xa
ror eax, 0xa
xor edx, eax
add dword [ebp - 0x3b8], edx
inc dword [ebp - 0x340]
cmp dword [ebp - 0x340], 4
mov dword [ebp - 0x3b4], edx
jb 0x100d3db5
mov eax, dword [ebp - 0x330]
add eax, 4
mov dword [ebp - 0x344], eax
jmp 0x100d3c69
xor edi, edi
mov eax, dword [ebp - 0x37c]
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x350], eax
je 0x100d3ea5
mov eax, dword [ebp - 0x344]
movzx eax, byte [eax + edi]
add eax, esi
mov edx, esi
add dword [ebp - 0x3b8], eax
add eax, dword [ebp - 0x3b4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0x6d29
rol edx, 0xa
ror eax, 0xa
xor edx, eax
add dword [ebp - 0x3b8], edx
inc edi
mov dword [ebp - 0x3b4], edx
cmp edi, dword [ebp - 0x350]
jb 0x100d3e47
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3b8]
mov byte [ebp + eax - 0x294], cl
inc eax
cmp eax, 0x10
jb 0x100d3ea9
mov eax, 0xf93ab5fc
mov eax, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x28c]
mov esi, dword [ebp - 0x288]
mov dword [ebp - 0x748], eax
mov dword [ebp - 0x720], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x744], ecx
mov dword [ebp - 0x71c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x74c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x738], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x710], eax
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x724], ecx
lea ecx, [ebp - 0xc4]
sub eax, ecx
mov dword [ebp - 0x334], eax
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x33c]
mov dword [ebp - 0x740], edx
mov dword [ebp - 0x73c], esi
mov dword [ebp - 0x718], edx
mov dword [ebp - 0x714], esi
mov dword [ebp - 0x734], edi
mov dword [ebp - 0x730], edi
mov dword [ebp - 0x72c], edi
mov dword [ebp - 0x728], edi
mov dword [ebp - 0x350], eax
push 0x10
lea esi, [ebp - 0x74c]
pop ecx
lea edi, [ebp - 0x514]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x504]
mov esi, dword [ebp - 0x4e4]
mov ecx, dword [ebp - 0x4f4]
mov dword [ebp - 0x330], 3
mov edx, dword [ebp - 0x514]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x514], edx
mov edx, dword [ebp - 0x510]
mov edi, dword [ebp - 0x500]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4f0], edx
mov edx, edi
mov edi, dword [ebp - 0x4f0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4e0], edx
mov edx, edi
mov edi, dword [ebp - 0x4e0]
add edi, edx
mov edx, dword [ebp - 0x4e0]
rol edi, 0xd
xor dword [ebp - 0x510], edi
mov edi, dword [ebp - 0x510]
add edx, edi
mov edi, dword [ebp - 0x4ec]
ror edx, 0xe
xor dword [ebp - 0x500], edx
mov edx, dword [ebp - 0x4fc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4dc], edx
mov edx, edi
mov edi, dword [ebp - 0x4dc]
add edx, edi
rol edx, 9
xor dword [ebp - 0x50c], edx
mov edx, edi
mov edi, dword [ebp - 0x50c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x50c]
xor dword [ebp - 0x4fc], edi
mov edi, dword [ebp - 0x4fc]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x4d8]
xor dword [ebp - 0x4ec], edx
mov edx, dword [ebp - 0x4e8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x508], edx
mov edx, edi
mov edi, dword [ebp - 0x508]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4f8], edx
mov edx, edi
mov edi, dword [ebp - 0x4f8]
add edi, edx
mov edx, dword [ebp - 0x4f8]
rol edi, 0xd
xor dword [ebp - 0x4e8], edi
mov edi, dword [ebp - 0x4e8]
add edx, edi
mov edi, dword [ebp - 0x514]
ror edx, 0xe
xor dword [ebp - 0x4d8], edx
mov edx, dword [ebp - 0x508]
add edx, edi
rol edx, 7
xor dword [ebp - 0x510], edx
mov edx, edi
mov edi, dword [ebp - 0x510]
add edi, edx
mov edx, dword [ebp - 0x510]
rol edi, 9
xor dword [ebp - 0x50c], edi
mov edi, dword [ebp - 0x50c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x50c]
xor dword [ebp - 0x508], edi
mov edi, dword [ebp - 0x508]
add edi, edx
mov edx, dword [ebp - 0x500]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x514], edi
rol edx, 7
xor dword [ebp - 0x4fc], edx
mov edx, dword [ebp - 0x500]
mov edi, dword [ebp - 0x4fc]
add edi, edx
mov edx, dword [ebp - 0x4fc]
rol edi, 9
xor dword [ebp - 0x4f8], edi
mov edi, dword [ebp - 0x4f8]
add edi, edx
rol edi, 0xd
xor eax, edi
mov edi, dword [ebp - 0x4f0]
mov edx, dword [ebp - 0x4f8]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x500], edx
mov edx, dword [ebp - 0x4ec]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4e8], edx
mov edx, dword [ebp - 0x4ec]
mov edi, dword [ebp - 0x4e8]
add edi, edx
mov edx, dword [ebp - 0x4e8]
rol edi, 9
xor ecx, edi
add edx, ecx
rol edx, 0xd
mov edi, dword [ebp - 0x4dc]
xor dword [ebp - 0x4f0], edx
mov edx, dword [ebp - 0x4f0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x4ec], edx
mov edx, dword [ebp - 0x4d8]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x4d8]
add edx, esi
rol edx, 9
xor dword [ebp - 0x4e0], edx
mov edx, dword [ebp - 0x4e0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x4dc], edx
mov edi, dword [ebp - 0x4dc]
mov edx, dword [ebp - 0x4e0]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x4d8], edi
dec dword [ebp - 0x330]
jne 0x100d3fa2
mov dword [ebp - 0x504], eax
xor eax, eax
mov dword [ebp - 0x4e4], esi
mov dword [ebp - 0x4f4], ecx
mov ecx, dword [ebp + eax - 0x74c]
add dword [ebp + eax - 0x514], ecx
add eax, 4
cmp eax, 0x40
jl 0x100d4226
lea esi, [ebp - 0x514]
inc dword [ebp - 0x72c]
push 0x10
pop ecx
lea edi, [ebp - 0xc4]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp - 0x354], 0x40
jbe 0x100d42aa
mov edi, dword [ebp - 0x334]
mov eax, dword [ebp - 0x350]
lea edx, [eax + edi]
lea ecx, [ebp + esi - 0xc4]
mov al, byte [ecx + edx]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
cmp esi, 0x40
mov byte [ecx + edi], al
jb 0x100d426d
push 0x40
pop eax
sub dword [ebp - 0x354], eax
add dword [ebp - 0x338], eax
add edi, eax
add dword [ebp - 0x32c], eax
mov dword [ebp - 0x334], edi
jmp 0x100d3f75
cmp dword [ebp - 0x354], 0
jbe 0x100d42e7
mov edx, dword [ebp - 0x338]
lea eax, [ebp - 0xc4]
mov edi, dword [ebp - 0x32c]
sub edi, eax
sub edx, eax
lea ecx, [ebp + esi - 0xc4]
mov al, byte [ecx + edi]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
mov byte [ecx + edx], al
cmp esi, dword [ebp - 0x354]
jb 0x100d42c9
mov eax, dword [ebp - 0x370]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d43a5
call fcn.1004ad05
mov ecx, 0xfffff000
mov esi, 0x100f1b6e
and eax, ecx
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
mov dword [eax + 8], esi
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
xor eax, eax
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d4337
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x350]
mov eax, dword [ebp - 0x378]
inc edx
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x350], 0
mov eax, edi
jae 0x100d00bb
mov ecx, dword [ebp - 0x350]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d4391
jmp 0x100d00bb
mov ecx, dword [0x1001256c]
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x33c]
mov dword [ebp - 0x334], eax
sub ebx, ecx
mov dword [ebp - 0x330], ebx
jne 0x100d43cf
test eax, eax
je 0x100d2ea4
mov ecx, dword [ebp - 0x348]
mov esi, dword [ebp - 0x33c]
mov eax, dword [ebp - 0x380]
sub esi, dword [ebp - 0x34c]
add eax, ecx
mov ecx, dword [0x10103928]
xor ebx, ebx
dec ecx
mov dword [ebp - 0x670], eax
js 0x100d4425
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d441c
lea ecx, [eax - 1]
jmp 0x100d4421
jbe 0x100d4429
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d43fa
mov edi, ebx
jmp 0x100d448e
mov edi, eax
jmp 0x100d448e
mov eax, dword [edi*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x670]
jae 0x100d2ea4
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d447b
dec ecx
je 0x100d4473
dec ecx
jne 0x100d4487
mov edx, dword [ebp - 0x330]
jmp 0x100d4487
mov edx, dword [ebp - 0x334]
jmp 0x100d4487
mov edx, dword [ebp - 0x330]
sub edx, dword [ebp - 0x334]
dec eax
dec eax
jne 0x100d448d
add dword [ebx], edx
inc edi
cmp edi, dword [0x10103928]
jb 0x100d442d
jmp 0x100d2ea4
cmp dword [ebp - 0x34c], ebx
jb 0x100d6503
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp dword [ebp - 0x34c], eax
jae 0x100d4f44
mov esi, dword [0x10058544]
mov edi, dword [ebp - 0x34c]
and dword [ebp - 0x32c], 0
sub edi, ebx
dec esi
js 0x100d4515
mov eax, dword [ebp - 0x32c]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1001d6c8]
mov dword [ebp - 0x350], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x100d4500
lea esi, [eax - 1]
jmp 0x100d450d
jbe 0x100d469a
inc eax
mov dword [ebp - 0x32c], eax
cmp esi, dword [ebp - 0x32c]
jge 0x100d44d8
xor edx, edx
test edx, edx
je 0x100d4f44
mov eax, dword [edx]
mov esi, eax
and eax, ecx
mov edi, eax
shr esi, 0x1d
lea esi, [esi + edx + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x334], eax
mov eax, dword [0x1007b9bc]
sub eax, edi
mov dword [ebp - 0x348], esi
lea ecx, [eax + 1]
sub dword [ebp - 0x348], ebx
xor eax, eax
mov dword [ebp - 0x34c], esi
mov dword [ebp - 0x380], edi
mov dword [ebp - 0x32c], ecx
test ecx, ecx
je 0x100d4595
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d4565
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push edi
push dword [ebp - 0x348]
mov dword [ebp - 0x344], eax
mov eax, 0xe78665e4
mov eax, dword [ebp - 0x334]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x694], eax
mov eax, dword [ebp - 0x344]
add esp, 0xc
mov dword [ebp - 0x698], ecx
mov byte [ebp - 0x325], 0
test edi, edi
mov dword [ebp - 0x33c], edi
mov dword [ebp - 0x338], esi
mov dword [ebp - 0x354], eax
je 0x100d4d74
lea eax, [ebp - 0x698]
push eax
mov eax, 0x3dc516f4
mov edi, dword [ebp - 0x698]
mov esi, dword [0x1001256c]
pop ecx
mov eax, 0xfffffff
mov ecx, dword [ebp - 0x694]
and ecx, eax
and edi, eax
xor edx, edx
mov eax, ebx
add edi, ebx
mov dword [ebp - 0x388], edx
sub eax, esi
mov dword [ebp - 0x384], edx
mov dword [ebp - 0x32c], ecx
mov dword [ebp - 0x374], eax
jne 0x100d46b8
cmp ecx, edx
jbe 0x100d4951
mov esi, 0x2f8c177
movzx ecx, byte [edx + edi]
sub ecx, esi
add dword [ebp - 0x388], ecx
add ecx, dword [ebp - 0x384]
mov eax, ecx
imul eax, eax, 0x5749
rol eax, 9
ror ecx, 9
xor eax, ecx
imul eax, eax, 0xfd073e89
ror eax, 9
imul eax, eax, 0xfd073e89
ror eax, 9
add dword [ebp - 0x388], eax
inc edx
mov dword [ebp - 0x384], eax
cmp edx, dword [ebp - 0x32c]
jb 0x100d464c
jmp 0x100d4951
mov eax, dword [ebp - 0x350]
mov edx, dword [eax]
mov eax, dword [eax + 4]
shr edx, 1
and edx, 0x3f
and eax, ecx
lea edx, [edx + eax + 0x10000000]
jmp 0x100d4517
mov edx, dword [0x1000003c]
mov eax, ecx
lea edx, [edx + 0x100000a0]
add eax, edi
mov dword [ebp - 0x37c], eax
mov eax, dword [edx]
mov ecx, edi
sub ecx, ebx
mov esi, ecx
and esi, 0xfffff000
mov edx, dword [edx + 4]
mov dword [ebp - 0x350], edx
mov edx, ecx
sub edx, esi
mov dword [ebp - 0x358], edx
mov edx, dword [ebp - 0x32c]
add ecx, edx
mov edx, ecx
and edx, 0xfffff000
sub ecx, edx
add eax, ebx
mov dword [ebp - 0x368], ecx
mov ecx, dword [ebp - 0x350]
mov dword [ebp - 0x36c], edx
mov edx, eax
add ecx, eax
mov dword [ebp - 0x364], ecx
cmp eax, ecx
je 0x100d4732
cmp dword [edx], esi
jae 0x100d4732
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x364]
jne 0x100d4723
and dword [ebp - 0x35c], 0
cmp edx, dword [ebp - 0x364]
je 0x100d4773
cmp dword [edx], esi
jne 0x100d4773
mov esi, dword [edx + 4]
sub esi, 8
shr esi, 1
je 0x100d4773
lea eax, [edx + 8]
movzx ecx, word [eax]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x358]
jae 0x100d4773
inc dword [ebp - 0x35c]
inc eax
inc eax
cmp dword [ebp - 0x35c], esi
jne 0x100d4752
mov esi, 0x2f8c177
cmp edx, dword [ebp - 0x364]
je 0x100d48f6
mov eax, dword [edx]
cmp eax, dword [ebp - 0x36c]
ja 0x100d48f6
mov ecx, dword [ebp - 0x35c]
mov eax, dword [edx + 4]
add eax, 0xfffffff8
shr eax, 1
cmp ecx, eax
jne 0x100d47c5
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x364]
je 0x100d48f6
mov eax, dword [ebp - 0x36c]
cmp dword [edx], eax
ja 0x100d48f6
xor ecx, ecx
jmp 0x100d4798
mov eax, dword [ebp - 0x36c]
cmp dword [edx], eax
jne 0x100d47e5
movzx eax, word [edx + ecx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x368]
jae 0x100d48f6
mov eax, ecx
inc ecx
mov dword [ebp - 0x35c], ecx
mov ecx, 0xf000
test word [edx + eax*2 + 8], cx
je 0x100d4778
lea eax, [edx + eax*2 + 8]
mov ecx, dword [edx]
and dword [ebp - 0x340], 0
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + ecx + 0x10000000]
mov dword [ebp - 0x32c], eax
sub dword [ebp - 0x32c], edi
mov dword [ebp - 0x330], eax
je 0x100d4888
mov eax, dword [ebp - 0x340]
movzx ecx, byte [eax + edi]
sub ecx, esi
add dword [ebp - 0x388], ecx
add ecx, dword [ebp - 0x384]
mov eax, ecx
imul eax, eax, 0x5749
rol eax, 9
ror ecx, 9
xor eax, ecx
imul eax, eax, 0xfd073e89
ror eax, 9
imul eax, eax, 0xfd073e89
ror eax, 9
add dword [ebp - 0x388], eax
inc dword [ebp - 0x340]
mov dword [ebp - 0x384], eax
mov eax, dword [ebp - 0x340]
cmp eax, dword [ebp - 0x32c]
jb 0x100d482e
mov eax, dword [ebp - 0x330]
mov eax, dword [eax]
sub eax, dword [ebp - 0x374]
xor edi, edi
mov dword [ebp - 0x66c], eax
movzx ecx, byte [ebp + edi - 0x66c]
sub ecx, esi
add dword [ebp - 0x388], ecx
add ecx, dword [ebp - 0x384]
mov eax, ecx
imul eax, eax, 0x5749
rol eax, 9
ror ecx, 9
xor eax, ecx
imul eax, eax, 0xfd073e89
ror eax, 9
imul eax, eax, 0xfd073e89
ror eax, 9
add dword [ebp - 0x388], eax
mov dword [ebp - 0x384], eax
inc edi
cmp edi, 4
jb 0x100d489e
mov edi, dword [ebp - 0x330]
add edi, 4
jmp 0x100d4778
mov eax, dword [ebp - 0x37c]
xor edx, edx
sub eax, edi
mov dword [ebp - 0x350], eax
je 0x100d4951
movzx ecx, byte [edx + edi]
sub ecx, esi
add dword [ebp - 0x388], ecx
add ecx, dword [ebp - 0x384]
mov eax, ecx
imul eax, eax, 0x5749
rol eax, 9
ror ecx, 9
xor eax, ecx
imul eax, eax, 0xfd073e89
ror eax, 9
imul eax, eax, 0xfd073e89
ror eax, 9
add dword [ebp - 0x388], eax
inc edx
mov dword [ebp - 0x384], eax
cmp edx, dword [ebp - 0x350]
jb 0x100d4908
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x388]
mov byte [ebp + eax - 0x324], cl
inc eax
cmp eax, 0x10
jb 0x100d4955
mov eax, 0xe96f33b
mov eax, dword [ebp - 0x324]
mov ecx, dword [ebp - 0x320]
mov esi, dword [ebp - 0x318]
mov edx, dword [ebp - 0x31c]
mov dword [ebp - 0x7c8], eax
mov dword [ebp - 0x7a0], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x7c4], ecx
mov dword [ebp - 0x79c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x7cc], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x7b8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x790], eax
lea eax, [ebp - 0x244]
sub eax, dword [ebp - 0x34c]
mov dword [ebp - 0x7c0], edx
mov dword [ebp - 0x7bc], esi
mov dword [ebp - 0x798], edx
mov dword [ebp - 0x794], esi
mov dword [ebp - 0x7b4], edi
mov dword [ebp - 0x7b0], edi
mov dword [ebp - 0x7ac], edi
mov dword [ebp - 0x7a8], edi
mov dword [ebp - 0x7a4], ecx
mov dword [ebp - 0x32c], eax
push 0x10
lea edi, [ebp - 0x614]
pop ecx
lea esi, [ebp - 0x7cc]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x5f4]
mov esi, dword [ebp - 0x5e4]
mov eax, dword [ebp - 0x604]
mov dword [ebp - 0x330], 2
mov edx, dword [ebp - 0x614]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov edi, dword [ebp - 0x600]
mov dword [ebp - 0x614], edx
mov edx, dword [ebp - 0x610]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5f0], edx
mov edx, edi
mov edi, dword [ebp - 0x5f0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5e0], edx
mov edx, edi
mov edi, dword [ebp - 0x5e0]
add edi, edx
mov edx, dword [ebp - 0x5e0]
rol edi, 0xd
xor dword [ebp - 0x610], edi
mov edi, dword [ebp - 0x610]
add edx, edi
mov edi, dword [ebp - 0x5ec]
ror edx, 0xe
xor dword [ebp - 0x600], edx
mov edx, dword [ebp - 0x5fc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5dc], edx
mov edx, edi
mov edi, dword [ebp - 0x5dc]
add edx, edi
rol edx, 9
xor dword [ebp - 0x60c], edx
mov edx, edi
mov edi, dword [ebp - 0x60c]
add edi, edx
mov edx, dword [ebp - 0x60c]
rol edi, 0xd
xor dword [ebp - 0x5fc], edi
mov edi, dword [ebp - 0x5fc]
add edx, edi
mov edi, dword [ebp - 0x5d8]
ror edx, 0xe
xor dword [ebp - 0x5ec], edx
mov edx, dword [ebp - 0x5e8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x608], edx
mov edx, edi
mov edi, dword [ebp - 0x608]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5f8], edx
mov edx, edi
mov edi, dword [ebp - 0x5f8]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x5f8]
xor dword [ebp - 0x5e8], edi
mov edi, dword [ebp - 0x5e8]
add edx, edi
mov edi, dword [ebp - 0x608]
ror edx, 0xe
xor dword [ebp - 0x5d8], edx
mov edx, dword [ebp - 0x614]
add edx, edi
rol edx, 7
xor dword [ebp - 0x610], edx
mov edi, dword [ebp - 0x610]
mov edx, dword [ebp - 0x614]
add edi, edx
mov edx, dword [ebp - 0x610]
rol edi, 9
xor dword [ebp - 0x60c], edi
mov edi, dword [ebp - 0x60c]
add edx, edi
rol edx, 0xd
xor dword [ebp - 0x608], edx
mov edx, edi
mov edi, dword [ebp - 0x608]
add edi, edx
mov edx, dword [ebp - 0x600]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x614], edi
rol edx, 7
xor dword [ebp - 0x5fc], edx
mov edi, dword [ebp - 0x5fc]
mov edx, dword [ebp - 0x600]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5f8], edx
mov edx, edi
mov edi, dword [ebp - 0x5f8]
add edi, edx
rol edi, 0xd
xor eax, edi
mov edx, dword [ebp - 0x5f8]
mov edi, dword [ebp - 0x5ec]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x600], edx
mov edx, dword [ebp - 0x5f0]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5e8], edx
mov edx, edi
mov edi, dword [ebp - 0x5e8]
add edi, edx
mov edx, dword [ebp - 0x5e8]
rol edi, 9
xor ecx, edi
add edx, ecx
rol edx, 0xd
mov edi, dword [ebp - 0x5dc]
xor dword [ebp - 0x5f0], edx
mov edx, dword [ebp - 0x5f0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x5ec], edx
mov edx, dword [ebp - 0x5d8]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x5d8]
add edx, esi
rol edx, 9
xor dword [ebp - 0x5e0], edx
mov edx, dword [ebp - 0x5e0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x5dc], edx
mov edx, dword [ebp - 0x5e0]
mov edi, dword [ebp - 0x5dc]
add edx, edi
ror edx, 0xe
xor dword [ebp - 0x5d8], edx
dec dword [ebp - 0x330]
jne 0x100d4a3a
push 0x40
mov dword [ebp - 0x604], eax
xor eax, eax
mov dword [ebp - 0x5e4], esi
mov dword [ebp - 0x5f4], ecx
pop edx
mov ecx, dword [ebp + eax - 0x7cc]
add dword [ebp + eax - 0x614], ecx
add eax, 4
cmp eax, edx
jl 0x100d4cb9
lea edi, [ebp - 0x244]
lea esi, [ebp - 0x614]
mov eax, dword [ebp - 0x33c]
inc dword [ebp - 0x7ac]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
cmp eax, edx
jbe 0x100d4d3d
mov esi, dword [ebp - 0x338]
mov edi, dword [ebp - 0x354]
mov dword [ebp - 0x330], edx
sub edi, esi
mov eax, dword [ebp - 0x32c]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x330]
jne 0x100d4d03
sub dword [ebp - 0x33c], edx
add dword [ebp - 0x354], edx
add dword [ebp - 0x338], edx
sub dword [ebp - 0x32c], edx
jmp 0x100d4a0d
test eax, eax
jbe 0x100d4d74
lea edi, [ebp - 0x244]
mov esi, dword [ebp - 0x338]
mov ecx, dword [ebp - 0x354]
sub edi, esi
mov dword [ebp - 0x330], eax
sub ecx, esi
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x330]
jne 0x100d4d5d
mov eax, dword [ebp - 0x334]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d4e32
call fcn.1004ad05
mov esi, 0x100f1b6e
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
mov dword [eax + 8], esi
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d4dc4
xor edx, edx
div ecx
mov eax, dword [ebp - 0x378]
mov ecx, dword [ebp - 0x350]
inc edx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov eax, edi
cmp edi, ebx
mov dword [ebp - 0x350], 0
jae 0x100d00bb
mov ecx, dword [ebp - 0x350]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d4e1e
jmp 0x100d00bb
mov edi, dword [ebp - 0x34c]
sub edi, dword [ebp - 0x344]
mov eax, dword [0x1001256c]
sub ebx, eax
mov dword [ebp - 0x330], edi
mov dword [ebp - 0x334], ebx
jne 0x100d4e5b
test edi, edi
je 0x100d01af
mov ecx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x380]
mov esi, dword [ebp - 0x344]
sub esi, dword [ebp - 0x34c]
add eax, ecx
xor ebx, ebx
mov ecx, dword [0x10103928]
mov dword [ebp - 0x66c], eax
dec ecx
js 0x100d4eb7
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d4ea8
lea ecx, [eax - 1]
jmp 0x100d4ead
jbe 0x100d4ebf
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d4e86
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x33c], ebx
jmp 0x100d4f31
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x33c], eax
jmp 0x100d4f31
mov eax, dword [ebp - 0x33c]
mov eax, dword [eax*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x66c]
jae 0x100d01af
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d4f1d
dec ecx
je 0x100d4f19
dec ecx
jne 0x100d4f25
mov edx, dword [ebp - 0x334]
jmp 0x100d4f25
mov edx, edi
jmp 0x100d4f25
mov edx, dword [ebp - 0x334]
sub edx, edi
dec eax
dec eax
jne 0x100d4f2b
add dword [ebx], edx
inc dword [ebp - 0x33c]
mov eax, dword [ebp - 0x33c]
cmp eax, dword [0x10103928]
jb 0x100d4ecd
jmp 0x100d01af
cmp dword [ebp - 0x34c], ebx
jb 0x100d6503
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp dword [ebp - 0x34c], eax
jae 0x100d59f5
mov esi, dword [0x100ced4c]
mov edi, dword [ebp - 0x34c]
and dword [ebp - 0x32c], 0
sub edi, ebx
dec esi
js 0x100d4fbe
mov eax, dword [ebp - 0x32c]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x10029dd0]
mov dword [ebp - 0x350], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x100d4fa9
lea esi, [eax - 1]
jmp 0x100d4fb6
jbe 0x100d5145
inc eax
mov dword [ebp - 0x32c], eax
cmp esi, dword [ebp - 0x32c]
jge 0x100d4f81
xor eax, eax
test eax, eax
je 0x100d59f5
mov edx, dword [eax + 4]
and edx, 7
mov esi, dword [eax]
shr esi, 2
lea edi, [edx + eax + 8]
and esi, ecx
lea eax, [esi + edi]
mov dword [ebp - 0x370], eax
mov eax, dword [0x1007b9bc]
sub eax, esi
mov dword [ebp - 0x348], edi
lea ecx, [eax + 1]
sub dword [ebp - 0x348], ebx
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x34c], edi
mov dword [ebp - 0x380], esi
mov dword [ebp - 0x32c], ecx
je 0x100d5040
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d5010
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push esi
push dword [ebp - 0x348]
mov dword [ebp - 0x354], eax
mov eax, 0x314b3a5f
mov eax, dword [ebp - 0x370]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6b4], eax
mov eax, dword [ebp - 0x354]
add esp, 0xc
mov dword [ebp - 0x6b8], ecx
mov byte [ebp - 0x325], 0
test esi, esi
mov dword [ebp - 0x33c], esi
mov dword [ebp - 0x340], edi
mov dword [ebp - 0x338], eax
je 0x100d5819
lea eax, [ebp - 0x6b8]
push eax
mov eax, 0x4902bb4a
mov eax, 0xfffffff
mov edi, dword [ebp - 0x6b8]
mov esi, dword [0x1001256c]
pop ecx
mov ecx, dword [ebp - 0x6b4]
and ecx, eax
and edi, eax
mov eax, ebx
xor edx, edx
mov dword [ebp - 0x3c8], edx
add edi, ebx
mov dword [ebp - 0x3c4], edx
sub eax, esi
mov dword [ebp - 0x32c], ecx
mov dword [ebp - 0x374], eax
jne 0x100d5161
cmp ecx, edx
jbe 0x100d53ee
mov esi, 0x2aa66c86
movzx eax, byte [edx + edi]
add eax, esi
add dword [ebp - 0x3c8], eax
add eax, dword [ebp - 0x3c4]
imul eax, eax, 0x2aa66c86
ror eax, 0x14
imul eax, eax, 0x2aa66c86
ror eax, 0x14
mov ecx, eax
imul eax, eax, 0x2434
rol eax, 6
ror ecx, 6
xor eax, ecx
add dword [ebp - 0x3c8], eax
mov dword [ebp - 0x3c4], eax
inc edx
cmp edx, dword [ebp - 0x32c]
jb 0x100d50f7
jmp 0x100d53ee
mov eax, dword [ebp - 0x350]
mov edx, dword [eax + 4]
and edx, ecx
mov eax, dword [eax]
and eax, 0x3f
lea eax, [eax + edx + 0x10000000]
jmp 0x100d4fc0
mov eax, ecx
mov edx, dword [0x1000003c]
mov ecx, edi
lea edx, [edx + 0x100000a0]
add eax, edi
mov dword [ebp - 0x37c], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
sub ecx, ebx
mov dword [ebp - 0x350], edx
mov esi, ecx
and esi, 0xfffff000
mov edx, ecx
sub edx, esi
mov dword [ebp - 0x358], edx
mov edx, dword [ebp - 0x32c]
add ecx, edx
mov edx, ecx
and edx, 0xfffff000
sub ecx, edx
add eax, ebx
mov dword [ebp - 0x368], ecx
mov ecx, dword [ebp - 0x350]
mov dword [ebp - 0x36c], edx
add ecx, eax
mov dword [ebp - 0x364], ecx
mov edx, eax
cmp eax, ecx
je 0x100d51d7
cmp dword [edx], esi
jae 0x100d51d7
add edx, dword [edx + 4]
cmp edx, ecx
jne 0x100d51cc
and dword [ebp - 0x35c], 0
cmp edx, ecx
je 0x100d5214
cmp dword [edx], esi
jne 0x100d5214
mov esi, dword [edx + 4]
sub esi, 8
shr esi, 1
je 0x100d5214
lea eax, [edx + 8]
movzx ecx, word [eax]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x358]
jae 0x100d5214
inc dword [ebp - 0x35c]
inc eax
inc eax
cmp dword [ebp - 0x35c], esi
jne 0x100d51f3
mov esi, 0x2aa66c86
cmp edx, dword [ebp - 0x364]
je 0x100d5393
mov eax, dword [edx]
cmp eax, dword [ebp - 0x36c]
ja 0x100d5393
mov ecx, dword [ebp - 0x35c]
mov eax, dword [edx + 4]
add eax, 0xfffffff8
shr eax, 1
cmp ecx, eax
jne 0x100d5266
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x364]
je 0x100d5393
mov eax, dword [ebp - 0x36c]
cmp dword [edx], eax
ja 0x100d5393
xor ecx, ecx
jmp 0x100d5239
mov eax, dword [ebp - 0x36c]
cmp dword [edx], eax
jne 0x100d5286
movzx eax, word [edx + ecx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x368]
jae 0x100d5393
mov eax, ecx
inc ecx
mov dword [ebp - 0x35c], ecx
mov ecx, 0xf000
test word [edx + eax*2 + 8], cx
je 0x100d5219
lea eax, [edx + eax*2 + 8]
mov ecx, dword [edx]
movzx eax, word [eax]
and eax, 0xfff
lea ecx, [eax + ecx + 0x10000000]
mov dword [ebp - 0x32c], ecx
xor eax, eax
sub dword [ebp - 0x32c], edi
mov dword [ebp - 0x334], ecx
mov dword [ebp - 0x330], eax
je 0x100d5325
movzx eax, byte [eax + edi]
add eax, esi
add dword [ebp - 0x3c8], eax
add eax, dword [ebp - 0x3c4]
imul eax, eax, 0x2aa66c86
ror eax, 0x14
imul eax, eax, 0x2aa66c86
ror eax, 0x14
mov ecx, eax
imul eax, eax, 0x2434
rol eax, 6
ror ecx, 6
xor eax, ecx
add dword [ebp - 0x3c8], eax
mov dword [ebp - 0x3c4], eax
mov eax, dword [ebp - 0x330]
inc eax
mov dword [ebp - 0x330], eax
cmp eax, dword [ebp - 0x32c]
jb 0x100d52d0
mov eax, dword [ebp - 0x334]
mov eax, dword [eax]
sub eax, dword [ebp - 0x374]
mov dword [ebp - 0x664], eax
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x664]
add eax, esi
add dword [ebp - 0x3c8], eax
add eax, dword [ebp - 0x3c4]
imul eax, eax, 0x2aa66c86
ror eax, 0x14
imul eax, eax, 0x2aa66c86
ror eax, 0x14
mov edi, eax
imul eax, eax, 0x2434
rol eax, 6
ror edi, 6
xor eax, edi
add dword [ebp - 0x3c8], eax
mov dword [ebp - 0x3c4], eax
inc ecx
cmp ecx, 4
jb 0x100d533b
mov edi, dword [ebp - 0x334]
add edi, 4
jmp 0x100d5219
xor edx, edx
mov eax, dword [ebp - 0x37c]
sub eax, edi
mov dword [ebp - 0x350], eax
je 0x100d53ee
movzx eax, byte [edx + edi]
add eax, esi
add dword [ebp - 0x3c8], eax
add eax, dword [ebp - 0x3c4]
imul eax, eax, 0x2aa66c86
ror eax, 0x14
imul eax, eax, 0x2aa66c86
ror eax, 0x14
mov ecx, eax
imul eax, eax, 0x2434
rol eax, 6
ror ecx, 6
xor eax, ecx
add dword [ebp - 0x3c8], eax
inc edx
mov dword [ebp - 0x3c4], eax
cmp edx, dword [ebp - 0x350]
jb 0x100d53a5
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3c8]
mov byte [ebp + eax - 0x2b4], cl
inc eax
cmp eax, 0x10
jb 0x100d53f0
mov eax, 0x733e8a95
mov edx, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x2b4]
mov esi, dword [ebp - 0x2a8]
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x6e0], eax
xor eax, eax
mov dword [ebp - 0x6f4], eax
mov dword [ebp - 0x6f0], eax
mov dword [ebp - 0x6ec], eax
mov dword [ebp - 0x6e8], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x704], ecx
mov dword [ebp - 0x6dc], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x70c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x6f8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x6d0], eax
lea eax, [ebp - 0x1c4]
sub eax, dword [ebp - 0x34c]
mov dword [ebp - 0x700], edx
mov dword [ebp - 0x6fc], esi
mov dword [ebp - 0x6d8], edx
mov dword [ebp - 0x6d4], esi
mov dword [ebp - 0x6e4], ecx
mov dword [ebp - 0x32c], eax
lea esi, [ebp - 0x70c]
push 0x10
pop ecx
lea edi, [ebp - 0x454]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x424]
mov eax, dword [ebp - 0x444]
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 0x330], 2
mov edx, dword [ebp - 0x454]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x454], edx
mov edx, dword [ebp - 0x450]
mov edi, dword [ebp - 0x440]
add edx, edi
rol edx, 7
xor dword [ebp - 0x430], edx
mov edx, edi
mov edi, dword [ebp - 0x430]
add edx, edi
rol edx, 9
xor dword [ebp - 0x420], edx
mov edx, edi
mov edi, dword [ebp - 0x420]
add edi, edx
mov edx, dword [ebp - 0x420]
rol edi, 0xd
xor dword [ebp - 0x450], edi
mov edi, dword [ebp - 0x450]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x42c]
xor dword [ebp - 0x440], edx
mov edx, dword [ebp - 0x43c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x41c], edx
mov edx, edi
mov edi, dword [ebp - 0x41c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x44c], edx
mov edx, edi
mov edi, dword [ebp - 0x44c]
add edi, edx
mov edx, dword [ebp - 0x44c]
rol edi, 0xd
xor dword [ebp - 0x43c], edi
mov edi, dword [ebp - 0x43c]
add edx, edi
mov edi, dword [ebp - 0x418]
ror edx, 0xe
xor dword [ebp - 0x42c], edx
mov edx, dword [ebp - 0x428]
add edx, edi
rol edx, 7
xor dword [ebp - 0x448], edx
mov edx, edi
mov edi, dword [ebp - 0x448]
add edx, edi
rol edx, 9
xor dword [ebp - 0x438], edx
mov edx, edi
mov edi, dword [ebp - 0x438]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x438]
xor dword [ebp - 0x428], edi
mov edi, dword [ebp - 0x428]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x454]
xor dword [ebp - 0x418], edx
mov edx, dword [ebp - 0x448]
add edx, edi
rol edx, 7
xor dword [ebp - 0x450], edx
mov edx, edi
mov edi, dword [ebp - 0x450]
add edi, edx
mov edx, dword [ebp - 0x450]
rol edi, 9
xor dword [ebp - 0x44c], edi
mov edi, dword [ebp - 0x44c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x44c]
xor dword [ebp - 0x448], edi
mov edi, dword [ebp - 0x448]
add edi, edx
mov edx, dword [ebp - 0x440]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x454], edi
rol edx, 7
xor dword [ebp - 0x43c], edx
mov edx, dword [ebp - 0x440]
mov edi, dword [ebp - 0x43c]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x43c]
xor dword [ebp - 0x438], edi
mov edi, dword [ebp - 0x438]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x438]
xor eax, edi
add edx, eax
mov edi, dword [ebp - 0x430]
ror edx, 0xe
xor dword [ebp - 0x440], edx
mov edx, dword [ebp - 0x42c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x428], edx
mov edi, dword [ebp - 0x428]
mov edx, dword [ebp - 0x42c]
add edi, edx
mov edx, dword [ebp - 0x428]
rol edi, 9
xor ecx, edi
add edx, ecx
rol edx, 0xd
mov edi, dword [ebp - 0x41c]
xor dword [ebp - 0x430], edx
mov edx, dword [ebp - 0x430]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x42c], edx
mov edx, dword [ebp - 0x418]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x418]
add edx, esi
rol edx, 9
xor dword [ebp - 0x420], edx
mov edx, dword [ebp - 0x420]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x41c], edx
mov edi, dword [ebp - 0x41c]
mov edx, dword [ebp - 0x420]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x418], edi
dec dword [ebp - 0x330]
jne 0x100d54d7
push 0x40
mov dword [ebp - 0x444], eax
xor eax, eax
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x434], ecx
pop edx
mov ecx, dword [ebp + eax - 0x70c]
add dword [ebp + eax - 0x454], ecx
add eax, 4
cmp eax, edx
jl 0x100d575e
lea esi, [ebp - 0x454]
lea edi, [ebp - 0x1c4]
mov eax, dword [ebp - 0x33c]
inc dword [ebp - 0x6ec]
cmp eax, edx
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
jbe 0x100d57e2
mov edi, dword [ebp - 0x338]
mov esi, dword [ebp - 0x340]
mov dword [ebp - 0x330], edx
sub edi, esi
mov eax, dword [ebp - 0x32c]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x330]
jne 0x100d57a8
sub dword [ebp - 0x33c], edx
add dword [ebp - 0x338], edx
add dword [ebp - 0x340], edx
sub dword [ebp - 0x32c], edx
jmp 0x100d54aa
test eax, eax
jbe 0x100d5819
mov ecx, dword [ebp - 0x338]
lea edi, [ebp - 0x1c4]
mov esi, dword [ebp - 0x340]
sub edi, esi
sub ecx, esi
mov dword [ebp - 0x330], eax
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x330]
jne 0x100d5802
mov eax, dword [ebp - 0x370]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d58d7
call fcn.1004ad05
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
mov esi, 0x100f1b6e
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
mov dword [eax + 8], esi
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d5869
xor edx, edx
div ecx
inc edx
mov eax, dword [ebp - 0x378]
cmp edi, ebx
mov ecx, dword [ebp - 0x350]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov eax, edi
mov dword [ebp - 0x350], 0
jae 0x100d00bb
mov ecx, dword [ebp - 0x350]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d58c3
jmp 0x100d00bb
mov eax, dword [0x1001256c]
mov edi, dword [ebp - 0x34c]
sub edi, dword [ebp - 0x354]
mov dword [ebp - 0x330], edi
sub ebx, eax
mov dword [ebp - 0x334], ebx
jne 0x100d5900
test edi, edi
je 0x100d59e0
mov ecx, dword [ebp - 0x348]
mov esi, dword [ebp - 0x354]
mov eax, dword [ebp - 0x380]
sub esi, dword [ebp - 0x34c]
add eax, ecx
mov ecx, dword [0x10103928]
mov dword [ebp - 0x664], eax
xor ebx, ebx
dec ecx
js 0x100d595c
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d594d
lea ecx, [eax - 1]
jmp 0x100d5952
jbe 0x100d5964
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d592b
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x33c], ebx
jmp 0x100d59d2
mov edi, dword [ebp - 0x330]
mov dword [ebp - 0x33c], eax
jmp 0x100d59d2
mov eax, dword [ebp - 0x33c]
mov eax, dword [eax*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x664]
jae 0x100d59e0
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d59be
dec ecx
je 0x100d59ba
dec ecx
jne 0x100d59c6
mov edx, dword [ebp - 0x334]
jmp 0x100d59c6
mov edx, edi
jmp 0x100d59c6
mov edx, dword [ebp - 0x334]
sub edx, edi
dec eax
dec eax
jne 0x100d59cc
add dword [ebx], edx
inc dword [ebp - 0x33c]
mov eax, dword [ebp - 0x33c]
cmp eax, dword [0x10103928]
jb 0x100d5972
mov eax, dword [0x1007b9bc]
mov eax, 0xebbbeba9
mov eax, dword [ebp - 0x354]
jmp 0x100d6598
cmp dword [ebp - 0x34c], ebx
jb 0x100d6503
mov eax, dword [0x1000003c]
mov eax, dword [eax + 0x10000050]
add eax, ebx
cmp dword [ebp - 0x34c], eax
jae 0x100d6503
mov esi, dword [0x10039cac]
mov edi, dword [ebp - 0x34c]
and dword [ebp - 0x32c], 0
sub edi, ebx
dec esi
js 0x100d5a70
mov eax, dword [ebp - 0x32c]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1009e6a0]
mov dword [ebp - 0x350], edx
mov edx, dword [edx]
shr edx, 1
and edx, ecx
cmp edi, edx
jae 0x100d5a5b
lea esi, [eax - 1]
jmp 0x100d5a68
jbe 0x100d5c15
inc eax
mov dword [ebp - 0x32c], eax
cmp esi, dword [ebp - 0x32c]
jge 0x100d5a32
xor eax, eax
test eax, eax
je 0x100d6503
mov esi, dword [eax]
and esi, ecx
mov edx, dword [eax + 4]
and edx, 7
lea edi, [edx + eax + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x334], eax
mov eax, dword [0x1007b9bc]
sub eax, esi
lea ecx, [eax + 1]
mov dword [ebp - 0x348], edi
sub dword [ebp - 0x348], ebx
xor eax, eax
mov dword [ebp - 0x34c], edi
test ecx, ecx
mov dword [ebp - 0x380], esi
mov dword [ebp - 0x32c], ecx
je 0x100d5aef
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d5abf
xor edx, edx
div ecx
mov eax, dword [ebp - 0x344]
add eax, edx
push eax
push esi
push dword [ebp - 0x348]
mov dword [ebp - 0x33c], eax
mov eax, 0xf19dc607
mov eax, dword [ebp - 0x334]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x67c], eax
mov eax, dword [ebp - 0x33c]
add esp, 0xc
mov dword [ebp - 0x680], ecx
mov byte [ebp - 0x325], 0
test esi, esi
mov dword [ebp - 0x32c], esi
mov dword [ebp - 0x338], edi
mov dword [ebp - 0x354], eax
je 0x100d634f
lea eax, [ebp - 0x680]
push eax
mov eax, 0xbe3125a5
mov edx, dword [ebp - 0x67c]
mov eax, dword [ebp - 0x680]
pop ecx
mov ecx, 0xfffffff
and eax, ecx
add eax, ebx
and edx, ecx
xor edi, edi
mov ecx, dword [0x1001256c]
mov dword [ebp - 0x344], eax
mov eax, ebx
mov dword [ebp - 0x3d0], edi
mov dword [ebp - 0x3cc], edi
mov dword [ebp - 0x330], edx
sub eax, ecx
mov dword [ebp - 0x374], eax
jne 0x100d5c33
cmp edx, edi
jbe 0x100d5f24
mov esi, 0x4494b131
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x344]
movzx edx, byte [edi + eax]
sub edx, esi
add dword [ebp - 0x3d0], edx
add edx, dword [ebp - 0x3cc]
mov eax, edx
imul eax, eax, 0xd384
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xbb6b4ecf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x3d0], eax
mov dword [ebp - 0x3cc], eax
inc edi
cmp edi, dword [ebp - 0x330]
jb 0x100d5bb5
jmp 0x100d5f24
mov eax, dword [ebp - 0x350]
mov edx, dword [eax]
shr edx, 1
and edx, ecx
mov eax, dword [eax + 4]
and eax, 0x3f
lea eax, [eax + edx + 0x10000000]
jmp 0x100d5a72
mov ecx, dword [ebp - 0x344]
mov edi, 0xfffff000
lea eax, [ecx + edx]
sub ecx, ebx
mov esi, ecx
mov edx, dword [0x1000003c]
and esi, edi
lea edx, [edx + 0x100000a0]
mov dword [ebp - 0x37c], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x350], edx
mov edx, ecx
sub edx, esi
mov dword [ebp - 0x358], edx
mov edx, dword [ebp - 0x330]
add ecx, edx
mov edx, ecx
and edx, edi
sub ecx, edx
mov dword [ebp - 0x368], ecx
mov ecx, dword [ebp - 0x350]
add eax, ebx
mov dword [ebp - 0x36c], edx
add ecx, eax
mov edi, eax
mov dword [ebp - 0x364], ecx
cmp eax, ecx
je 0x100d5ca9
cmp dword [edi], esi
jae 0x100d5ca9
add edi, dword [edi + 4]
cmp edi, ecx
jne 0x100d5c9e
and dword [ebp - 0x35c], 0
cmp edi, ecx
je 0x100d5ce5
cmp dword [edi], esi
jne 0x100d5ce5
mov esi, dword [edi + 4]
sub esi, 8
shr esi, 1
je 0x100d5ce5
lea ecx, [edi + 8]
movzx eax, word [ecx]
and eax, 0xfff
cmp eax, dword [ebp - 0x358]
jae 0x100d5ce5
inc dword [ebp - 0x35c]
inc ecx
inc ecx
cmp dword [ebp - 0x35c], esi
jne 0x100d5cc5
mov ecx, 0x7fffffff
mov esi, 0x4494b131
jmp 0x100d5cf7
mov edx, dword [ebp - 0x36c]
cmp edi, dword [ebp - 0x364]
je 0x100d5eb3
cmp dword [edi], edx
ja 0x100d5eb3
mov eax, dword [edi + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x35c], eax
jne 0x100d5d41
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x364]
je 0x100d5eb3
mov eax, dword [ebp - 0x36c]
cmp dword [edi], eax
ja 0x100d5eb3
and dword [ebp - 0x35c], 0
jmp 0x100d5d0b
mov eax, dword [ebp - 0x36c]
cmp dword [edi], eax
jne 0x100d5d67
mov eax, dword [ebp - 0x35c]
movzx eax, word [edi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x368]
jae 0x100d5eb3
mov eax, 0xf000
mov edx, dword [ebp - 0x35c]
inc dword [ebp - 0x35c]
test word [edi + edx*2 + 8], ax
je 0x100d5cf1
and dword [ebp - 0x340], 0
lea eax, [edi + edx*2 + 8]
movzx eax, word [eax]
mov edx, dword [edi]
and eax, 0xfff
lea eax, [eax + edx + 0x10000000]
mov dword [ebp - 0x330], eax
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x350], eax
je 0x100d5e1f
mov eax, dword [ebp - 0x340]
mov edx, dword [ebp - 0x344]
movzx edx, byte [eax + edx]
sub edx, esi
add dword [ebp - 0x3d0], edx
add edx, dword [ebp - 0x3cc]
mov eax, edx
imul eax, eax, 0xd384
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xbb6b4ecf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x3d0], eax
inc dword [ebp - 0x340]
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebp - 0x340]
cmp eax, dword [ebp - 0x350]
jb 0x100d5db3
mov eax, dword [ebp - 0x330]
mov eax, dword [eax]
sub eax, dword [ebp - 0x374]
and dword [ebp - 0x340], 0
mov dword [ebp - 0x658], eax
mov eax, dword [ebp - 0x340]
movzx edx, byte [ebp + eax - 0x658]
sub edx, esi
add dword [ebp - 0x3d0], edx
add edx, dword [ebp - 0x3cc]
mov eax, edx
imul eax, eax, 0xd384
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xbb6b4ecf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x3d0], eax
inc dword [ebp - 0x340]
cmp dword [ebp - 0x340], 4
mov dword [ebp - 0x3cc], eax
jb 0x100d5e3a
mov eax, dword [ebp - 0x330]
add eax, 4
mov dword [ebp - 0x344], eax
jmp 0x100d5cf1
mov eax, dword [ebp - 0x37c]
xor edi, edi
sub eax, dword [ebp - 0x344]
mov dword [ebp - 0x350], eax
je 0x100d5f24
mov eax, dword [ebp - 0x344]
movzx edx, byte [edi + eax]
sub edx, esi
add dword [ebp - 0x3d0], edx
add edx, dword [ebp - 0x3cc]
mov eax, edx
imul eax, eax, 0xd384
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xbb6b4ecf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x3d0], eax
inc edi
mov dword [ebp - 0x3cc], eax
cmp edi, dword [ebp - 0x350]
jb 0x100d5ec9
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3d0]
mov byte [ebp + eax - 0x2f4], cl
inc eax
cmp eax, 0x10
jb 0x100d5f28
mov eax, 0x5c3fc5e4
mov esi, dword [ebp - 0x2e8]
mov ecx, dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x2f4]
mov edx, dword [ebp - 0x2ec]
mov dword [ebp - 0x8c8], eax
mov dword [ebp - 0x8a0], eax
mov eax, dword [0x10120760]
mov dword [ebp - 0x8c4], ecx
mov dword [ebp - 0x89c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x8cc], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x8b8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x890], eax
lea eax, [ebp - 0x144]
sub eax, dword [ebp - 0x34c]
mov dword [ebp - 0x8c0], edx
mov dword [ebp - 0x8bc], esi
mov dword [ebp - 0x898], edx
mov dword [ebp - 0x894], esi
mov dword [ebp - 0x8b4], edi
mov dword [ebp - 0x8b0], edi
mov dword [ebp - 0x8ac], edi
mov dword [ebp - 0x8a8], edi
mov dword [ebp - 0x8a4], ecx
mov dword [ebp - 0x340], eax
push 0x10
pop ecx
lea esi, [ebp - 0x8cc]
lea edi, [ebp - 0x4d4]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x4c4]
mov ecx, dword [ebp - 0x4b4]
mov esi, dword [ebp - 0x4a4]
mov dword [ebp - 0x330], 3
mov edx, dword [ebp - 0x4d4]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x4d4], edx
mov edi, dword [ebp - 0x4c0]
mov edx, dword [ebp - 0x4d0]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4b0], edx
mov edx, edi
mov edi, dword [ebp - 0x4b0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4a0], edx
mov edx, edi
mov edi, dword [ebp - 0x4a0]
add edi, edx
mov edx, dword [ebp - 0x4a0]
rol edi, 0xd
xor dword [ebp - 0x4d0], edi
mov edi, dword [ebp - 0x4d0]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x4ac]
xor dword [ebp - 0x4c0], edx
mov edx, dword [ebp - 0x4bc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x49c], edx
mov edx, edi
mov edi, dword [ebp - 0x49c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4cc], edx
mov edx, edi
mov edi, dword [ebp - 0x4cc]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x4cc]
xor dword [ebp - 0x4bc], edi
mov edi, dword [ebp - 0x4bc]
add edx, edi
mov edi, dword [ebp - 0x498]
ror edx, 0xe
xor dword [ebp - 0x4ac], edx
mov edx, dword [ebp - 0x4a8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4c8], edx
mov edx, edi
mov edi, dword [ebp - 0x4c8]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4b8], edx
mov edx, edi
mov edi, dword [ebp - 0x4b8]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x4b8]
xor dword [ebp - 0x4a8], edi
mov edi, dword [ebp - 0x4a8]
add edx, edi
mov edi, dword [ebp - 0x4d4]
ror edx, 0xe
xor dword [ebp - 0x498], edx
mov edx, dword [ebp - 0x4c8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4d0], edx
mov edx, edi
mov edi, dword [ebp - 0x4d0]
add edi, edx
mov edx, dword [ebp - 0x4d0]
rol edi, 9
xor dword [ebp - 0x4cc], edi
mov edi, dword [ebp - 0x4cc]
add edi, edx
mov edx, dword [ebp - 0x4cc]
rol edi, 0xd
xor dword [ebp - 0x4c8], edi
mov edi, dword [ebp - 0x4c8]
add edi, edx
mov edx, dword [ebp - 0x4c0]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x4d4], edi
rol edx, 7
xor dword [ebp - 0x4bc], edx
mov edx, dword [ebp - 0x4c0]
mov edi, dword [ebp - 0x4bc]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x4bc]
xor dword [ebp - 0x4b8], edi
mov edi, dword [ebp - 0x4b8]
add edi, edx
mov edx, dword [ebp - 0x4b8]
rol edi, 0xd
xor eax, edi
add edx, eax
ror edx, 0xe
mov edi, dword [ebp - 0x4b0]
xor dword [ebp - 0x4c0], edx
mov edx, dword [ebp - 0x4ac]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4a8], edx
mov edx, dword [ebp - 0x4ac]
mov edi, dword [ebp - 0x4a8]
add edi, edx
mov edx, dword [ebp - 0x4a8]
rol edi, 9
xor ecx, edi
add edx, ecx
mov edi, dword [ebp - 0x49c]
rol edx, 0xd
xor dword [ebp - 0x4b0], edx
mov edx, dword [ebp - 0x4b0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x4ac], edx
mov edx, dword [ebp - 0x498]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x498]
add edx, esi
rol edx, 9
xor dword [ebp - 0x4a0], edx
mov edx, dword [ebp - 0x4a0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x49c], edx
mov edi, dword [ebp - 0x49c]
mov edx, dword [ebp - 0x4a0]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x498], edi
dec dword [ebp - 0x330]
jne 0x100d600d
push 0x40
mov dword [ebp - 0x4c4], eax
xor eax, eax
mov dword [ebp - 0x4a4], esi
mov dword [ebp - 0x4b4], ecx
pop edx
mov ecx, dword [ebp + eax - 0x8cc]
add dword [ebp + eax - 0x4d4], ecx
add eax, 4
cmp eax, edx
jl 0x100d6294
lea esi, [ebp - 0x4d4]
lea edi, [ebp - 0x144]
mov eax, dword [ebp - 0x32c]
inc dword [ebp - 0x8ac]
cmp eax, edx
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
jbe 0x100d6318
mov edi, dword [ebp - 0x354]
mov esi, dword [ebp - 0x338]
mov dword [ebp - 0x330], edx
sub edi, esi
mov eax, dword [ebp - 0x340]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x330]
jne 0x100d62de
sub dword [ebp - 0x32c], edx
add dword [ebp - 0x354], edx
add dword [ebp - 0x338], edx
sub dword [ebp - 0x340], edx
jmp 0x100d5fe0
test eax, eax
jbe 0x100d634f
mov ecx, dword [ebp - 0x354]
mov esi, dword [ebp - 0x338]
lea edi, [ebp - 0x144]
mov dword [ebp - 0x330], eax
sub edi, esi
sub ecx, esi
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x330]
jne 0x100d6338
mov eax, dword [ebp - 0x334]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x100d640d
call fcn.1004ad05
mov ecx, 0xfffff000
mov esi, 0x100f1b6e
and eax, ecx
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
mov dword [eax + 8], esi
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
xor eax, eax
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x1012ee38]
shr dword [ebp - 0x32c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1012ee38], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x32c], 0
jne 0x100d639f
xor edx, edx
div ecx
mov eax, dword [ebp - 0x378]
mov ecx, dword [ebp - 0x350]
inc edx
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov eax, edi
mov dword [ebp - 0x350], 0
jae 0x100d00bb
mov ecx, dword [ebp - 0x350]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x100d63f9
jmp 0x100d00bb
mov ecx, dword [0x1001256c]
mov eax, dword [ebp - 0x34c]
sub eax, dword [ebp - 0x33c]
sub ebx, ecx
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x330], ebx
jne 0x100d6437
test eax, eax
je 0x100d2ea4
mov esi, dword [ebp - 0x33c]
mov eax, dword [ebp - 0x348]
sub esi, dword [ebp - 0x34c]
mov ecx, dword [ebp - 0x380]
add eax, ecx
xor ebx, ebx
mov ecx, dword [0x10103928]
mov dword [ebp - 0x658], eax
dec ecx
js 0x100d648d
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1010392c]
and edx, 0xfffffff
cmp dword [ebp - 0x348], edx
jae 0x100d6484
lea ecx, [eax - 1]
jmp 0x100d6489
jbe 0x100d6491
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x100d6462
mov edi, ebx
jmp 0x100d64f6
mov edi, eax
jmp 0x100d64f6
mov eax, dword [edi*4 + 0x1010392c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x658]
jae 0x100d2ea4
lea ebx, [ecx + esi + 0x10000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100d64e3
dec ecx
je 0x100d64db
dec ecx
jne 0x100d64ef
mov edx, dword [ebp - 0x330]
jmp 0x100d64ef
mov edx, dword [ebp - 0x334]
jmp 0x100d64ef
mov edx, dword [ebp - 0x330]
sub edx, dword [ebp - 0x334]
dec eax
dec eax
jne 0x100d64f5
add dword [ebx], edx
inc edi
cmp edi, dword [0x10103928]
jb 0x100d6495
jmp 0x100d2ea4
mov eax, 0x20a75b60
mov esi, section..data
mov edi, dword [ebp - 0x344]
cmp edi, esi
jb 0x100d654e
mov ecx, dword [0x1007b9bc]
mov eax, dword [0x10012044]
imul eax, ecx
lea eax, [eax + section..data]
cmp edi, eax
jae 0x100d654e
mov eax, edi
sub eax, esi
mov ecx, dword [0x1007b9bc]
xor edx, edx
div ecx
mov ecx, dword [0x1007b9bc]
imul ecx, eax
lea ecx, [ecx + section..data]
jmp 0x100d6550
xor ecx, ecx
test ecx, ecx
je 0x100d6575
mov ecx, dword [0x1007b9bc]
mov eax, edi
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x10012044]
mov dword [eax*4 + 0x1012ee90], 0x3c6f
jmp 0x100d6592
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x8000
mov esi, eax
push 0
push edi
call dword [sym.imp.kernel32.dll_VirtualFree]
push esi
call dword [sym.imp.kernel32.dll_SetLastError]
mov eax, dword [ebp - 0x34c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.100e1f14
leave
ret 0x10