Function at 0x100f2a8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov edi, edi
mov ebp, esp
sub esp, 0x74
push ebx
push esi
mov esi, dword [ebp + 0x14]
mov ebx, 0x1000000
push edi
cmp esi, ebx
mov edi, 0xfffffff
jb 0x100fa01
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, ebx
cmp esi, eax
jae 0x100fa01
mov ecx, dword [0x10572f4]
and dword [ebp - 0x14], 0
sub esi, ebx
dec ecx
js 0x100f31d
mov eax, dword [ebp - 0x14]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1062dfc]
mov dword [ebp - 0x1c], edx
mov edx, dword [edx + 4]
and edx, edi
cmp esi, edx
jae 0x100f30e
lea ecx, [eax - 1]
jmp 0x100f318
jbe 0x100f436
inc eax
mov dword [ebp - 0x14], eax
cmp ecx, dword [ebp - 0x14]
jge 0x100f2ec
xor eax, eax
test eax, eax
je 0x100fa01
mov esi, dword [eax + 4]
mov ecx, dword [eax]
and ecx, 7
and esi, edi
lea ecx, [ecx + eax + 8]
mov eax, dword [0x102dddc]
mov dword [ebp - 8], ecx
sub eax, esi
sub dword [ebp - 8], ebx
lea edi, [esi + ecx]
mov dword [ebp + 0x14], ecx
mov dword [ebp - 0x1c], esi
lea ecx, [eax + 1]
xor eax, eax
mov dword [ebp - 0x28], edi
test ecx, ecx
mov dword [ebp - 0x14], ecx
je 0x100f384
mov edx, dword [0x10893f8]
shr dword [ebp - 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x10893f8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x14], 0
jne 0x100f35a
xor edx, edx
div ecx
mov eax, dword [ebp + 0x10]
add eax, edx
push esi
push dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov eax, 0x7061e082
test esi, esi
mov eax, dword [edi]
mov dword [ebp - 0x58], eax
mov eax, dword [edi + 4]
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
mov byte [ebp + 0x13], 0
jbe 0x100f893
lea esi, [ebp - 0x58]
mov eax, 0x7b930aae
mov esi, dword [ebp - 0x54]
mov edi, dword [0x100771c]
mov edx, dword [ebp - 0x58]
mov eax, 0xfffffff
and edx, eax
and esi, eax
mov eax, ebx
xor ecx, ecx
mov dword [ebp - 0x48], ecx
add edx, ebx
mov dword [ebp - 0x44], ecx
sub eax, edi
mov dword [ebp - 0xc], eax
jne 0x100f44f
cmp esi, ecx
mov dword [ebp - 0xc], ecx
jbe 0x100f638
mov edi, 0x6a74adea
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + edx]
add eax, edi
add dword [ebp - 0x48], eax
add eax, dword [ebp - 0x44]
imul eax, eax, 0x6a74adea
ror eax, 0x19
mov ecx, eax
imul eax, eax, 0x139
rol eax, 0xa
ror ecx, 0xa
xor eax, ecx
imul eax, eax, 0x6a74adea
ror eax, 0x19
add dword [ebp - 0x48], eax
inc dword [ebp - 0xc]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0xc], esi
jb 0x100f3f2
jmp 0x100f638
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, edi
and eax, 0x3f
lea eax, [eax + ecx + 0x1000000]
jmp 0x100f31f
mov ecx, edx
lea eax, [edx + esi]
mov edi, dword [0x100003c]
lea edi, [edi + 0x10000a0]
mov dword [ebp - 0x24], eax
mov eax, dword [edi]
mov edi, dword [edi + 4]
add eax, ebx
sub ecx, ebx
mov ebx, ecx
and ebx, 0xfffff000
mov dword [ebp - 0x14], ebx
mov ebx, ecx
sub ebx, dword [ebp - 0x14]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
mov dword [ebp - 0x74], esi
sub ecx, esi
mov esi, eax
add edi, eax
cmp eax, edi
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edi
je 0x100f4a8
mov eax, dword [ebp - 0x14]
cmp dword [esi], eax
jae 0x100f4a8
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x6c]
jne 0x100f499
and dword [ebp - 0x64], 0
cmp esi, dword [ebp - 0x6c]
je 0x100f4dc
mov eax, dword [ebp - 0x14]
cmp dword [esi], eax
jne 0x100f4dc
mov ecx, dword [esi + 4]
sub ecx, 8
shr ecx, 1
je 0x100f4dc
lea eax, [esi + 8]
movzx edi, word [eax]
and edi, 0xfff
cmp edi, ebx
jae 0x100f4dc
inc dword [ebp - 0x64]
inc eax
inc eax
cmp dword [ebp - 0x64], ecx
jne 0x100f4c5
mov edi, 0x6a74adea
cmp esi, dword [ebp - 0x6c]
je 0x100f5f1
mov ecx, dword [ebp - 0x74]
cmp dword [esi], ecx
ja 0x100f5f1
mov eax, dword [esi + 4]
lea ebx, [eax - 8]
shr ebx, 1
cmp dword [ebp - 0x64], ebx
jne 0x100f51b
add esi, eax
cmp esi, dword [ebp - 0x6c]
je 0x100f5f1
cmp dword [esi], ecx
ja 0x100f5f1
and dword [ebp - 0x64], 0
jmp 0x100f4f5
cmp dword [esi], ecx
jne 0x100f535
mov eax, dword [ebp - 0x64]
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x70]
jae 0x100f5f1
mov ecx, 0xf000
mov eax, dword [ebp - 0x64]
inc dword [ebp - 0x64]
test word [esi + eax*2 + 8], cx
je 0x100f4e1
mov ecx, dword [esi]
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
lea eax, [eax + ecx + 0x1000000]
mov dword [ebp - 0x14], eax
xor ecx, ecx
sub dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
je 0x100f5a1
movzx eax, byte [ecx + edx]
add eax, edi
add dword [ebp - 0x48], eax
add eax, dword [ebp - 0x44]
imul eax, eax, 0x6a74adea
ror eax, 0x19
mov ebx, eax
imul eax, eax, 0x139
rol eax, 0xa
ror ebx, 0xa
xor eax, ebx
imul eax, eax, 0x6a74adea
ror eax, 0x19
add dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
inc ecx
cmp ecx, dword [ebp - 0x14]
jb 0x100f567
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebx]
sub eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x20]
add eax, edi
add dword [ebp - 0x48], eax
add eax, dword [ebp - 0x44]
imul eax, eax, 0x6a74adea
ror eax, 0x19
mov edx, eax
imul eax, eax, 0x139
rol eax, 0xa
ror edx, 0xa
xor eax, edx
imul eax, eax, 0x6a74adea
ror eax, 0x19
add dword [ebp - 0x48], eax
inc ecx
mov dword [ebp - 0x44], eax
cmp ecx, 4
jb 0x100f5ae
lea edx, [ebx + 4]
jmp 0x100f4e1
mov ebx, dword [ebp - 0x24]
xor esi, esi
sub ebx, edx
je 0x100f633
movzx eax, byte [esi + edx]
add eax, edi
add dword [ebp - 0x48], eax
add eax, dword [ebp - 0x44]
imul eax, eax, 0x6a74adea
ror eax, 0x19
mov ecx, eax
imul eax, eax, 0x139
rol eax, 0xa
ror ecx, 0xa
xor eax, ecx
imul eax, eax, 0x6a74adea
ror eax, 0x19
add dword [ebp - 0x48], eax
inc esi
mov dword [ebp - 0x44], eax
cmp esi, ebx
jb 0x100f5fa
mov ebx, 0x1000000
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x48]
mov byte [ebp + eax - 0x38], cl
inc eax
cmp eax, 6
jb 0x100f63a
mov eax, 0xc6b2ad1d
mov ecx, dword [ebp - 0x1c]
or byte [ebp - 0x38], 1
or byte [ebp - 0x36], 1
mov eax, 0x100
or byte [ebp - 0x34], 1
or byte [ebp - 0x33], 1
dec ecx
mov dword [ebp - 0x18], ecx
je 0x100f7fb
mov edx, dword [ebp + 0x14]
lea esi, [ecx + edx]
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 0x10]
sub esi, edx
mov dword [ebp - 0x24], esi
test cl, 1
je 0x100f730
movzx edi, byte [ebp - 0x35]
mov esi, dword [ebp - 0xc]
mov cl, byte [esi]
xor cl, byte [ebp - 0x35]
and cl, 1
mov byte [ebp - 1], cl
movzx ecx, byte [esi]
je 0x100f6bb
mov edx, edi
shr edx, 1
movzx esi, byte [ebp - 0x36]
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x100f6c1
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, dword [ebp - 0xc]
movzx edx, byte [edx - 1]
mov dword [ebp - 0x14], edx
xor edx, esi
test dl, 1
je 0x100f70a
cmp byte [ebp - 1], 0
je 0x100f6ea
movzx edx, byte [ebp - 0x36]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100f6f0
xor ecx, edi
shr ecx, 1
mov edx, ecx
mov esi, dword [ebp - 0x14]
movzx ecx, byte [ebp - 0x33]
shr ecx, 1
xor esi, edx
xor ecx, 0x80
sar esi, 1
xor ecx, esi
jmp 0x100f7da
cmp byte [ebp - 1], 0
je 0x100f722
movzx edx, byte [ebp - 0x36]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100f728
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, dword [ebp - 0x14]
jmp 0x100f7d6
mov ecx, dword [ebp - 0xc]
mov cl, byte [ecx]
movzx edi, byte [ebp - 0x37]
xor cl, byte [ebp - 0x37]
and cl, 1
mov byte [ebp - 1], cl
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx]
je 0x100f760
mov edx, edi
movzx esi, byte [ebp - 0x38]
shr edx, 1
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x100f766
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, esi
mov esi, dword [ebp - 0xc]
movzx esi, byte [esi - 1]
xor edx, esi
test dl, 1
je 0x100f7af
cmp byte [ebp - 1], 0
je 0x100f78e
movzx edx, byte [ebp - 0x38]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100f794
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x34]
shr ecx, 1
mov esi, dword [ebp - 0xc]
movzx esi, byte [esi - 1]
xor edx, esi
xor ecx, 0x80
sar edx, 1
xor ecx, edx
jmp 0x100f7da
cmp byte [ebp - 1], 0
je 0x100f7c7
movzx edx, byte [ebp - 0x38]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100f7cd
xor ecx, edi
shr ecx, 1
mov edx, ecx
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx - 1]
xor edx, ecx
sar edx, 1
mov ecx, edx
mov esi, dword [ebp - 0xc]
xor byte [ebp + 0x13], cl
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x14], ecx
mov byte [esi + edx], cl
mov ecx, dword [ebp - 0x18]
dec ecx
dec dword [ebp - 0xc]
test ecx, ecx
mov dword [ebp - 0x18], ecx
ja 0x100f685
mov edi, dword [ebp + 0x14]
mov cl, byte [edi]
xor cl, byte [ebp - 0x37]
and cl, 1
mov byte [ebp - 1], cl
movzx ecx, byte [edi]
je 0x100f828
movzx esi, byte [ebp - 0x37]
movzx edx, byte [ebp - 0x38]
mov edi, esi
shr edi, 1
shr edx, 1
xor edx, edi
mov edi, ecx
xor edi, eax
sar edi, 1
xor edx, edi
jmp 0x100f838
movzx edx, byte [ebp - 0x37]
mov esi, edx
mov dword [ebp - 0x18], edx
mov edx, ecx
xor edx, dword [ebp - 0x18]
shr edx, 1
test dl, 1
je 0x100f865
cmp byte [ebp - 1], 0
je 0x100f855
movzx edi, byte [ebp - 0x38]
shr edi, 1
shr esi, 1
xor ecx, eax
xor edi, esi
sar ecx, 1
xor edi, ecx
jmp 0x100f85b
xor ecx, esi
shr ecx, 1
mov edi, ecx
movzx edx, byte [ebp - 0x34]
xor edx, edi
xor edx, eax
jmp 0x100f883
cmp byte [ebp - 1], 0
je 0x100f87d
movzx edx, byte [ebp - 0x38]
shr edx, 1
shr esi, 1
xor ecx, eax
xor edx, esi
sar ecx, 1
xor edx, ecx
jmp 0x100f883
xor ecx, esi
shr ecx, 1
mov edx, ecx
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
sar edx, 1
xor byte [ebp + 0x13], dl
mov byte [eax], dl
mov al, byte [edi + 8]
xor al, byte [ebp + 0x13]
je 0x100f925
call fcn.01035dac
mov esi, 0xffff
mov ebx, eax
mov edx, 0xfffff000
mov eax, dword [ebp + 8]
lea ecx, [eax + 0xc]
and ecx, 0xfffffffc
lea edi, [ecx + 0xfff]
mov dword [eax + 8], 0x1021023
and ebx, edx
and edi, edx
xor eax, eax
mov dword [ebp + 0x14], esi
mov edx, dword [0x10893f8]
shr dword [ebp + 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x10893f8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp + 0x14], 0
jne 0x100f8cf
xor edx, edx
div esi
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x1c], ebx
mov dword [ebp + 0x14], 0
inc edx
mov dword [eax], edx
jmp 0x100f917
mov eax, dword [ebp + 0x14]
mov dword [ecx], eax
add ecx, 4
cmp ecx, edi
jb 0x100f90f
mov eax, 0x1021023
jmp 0x101016e
mov edi, dword [ebp + 0x14]
sub edi, dword [ebp - 0x10]
mov eax, dword [0x100771c]
sub ebx, eax
mov dword [ebp + 0x10], edi
mov dword [ebp + 8], ebx
jne 0x100f942
test edi, edi
je 0x100f9ef
mov eax, dword [ebp - 8]
mov ecx, dword [0x101c5b0]
mov ebx, dword [ebp - 0x10]
sub ebx, dword [ebp + 0x14]
add eax, esi
mov dword [ebp + 0xc], eax
xor esi, esi
dec ecx
js 0x100f986
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x101c5b4]
and edx, 0xfffffff
cmp dword [ebp - 8], edx
jae 0x100f97a
lea ecx, [eax - 1]
jmp 0x100f97f
jbe 0x100f98b
lea esi, [eax + 1]
cmp ecx, esi
jge 0x100f95b
mov edi, dword [ebp + 0x10]
mov dword [ebp + 0x14], esi
jmp 0x100f9e4
mov edi, dword [ebp + 0x10]
mov dword [ebp + 0x14], eax
jmp 0x100f9e4
mov eax, dword [ebp + 0x14]
mov eax, dword [eax*4 + 0x101c5b4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp + 0xc]
jae 0x100f9ef
lea esi, [ecx + ebx + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100f9d6
dec ecx
je 0x100f9d2
dec ecx
jne 0x100f9db
mov edx, dword [ebp + 8]
jmp 0x100f9db
mov edx, edi
jmp 0x100f9db
mov edx, dword [ebp + 8]
sub edx, edi
dec eax
dec eax
jne 0x100f9e1
add dword [esi], edx
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
cmp eax, dword [0x101c5b0]
jb 0x100f993
mov eax, dword [0x102dddc]
mov eax, 0xbda37e30
mov eax, dword [ebp - 0x10]
jmp 0x101016e
mov esi, dword [ebp + 0x14]
cmp esi, ebx
jb 0x10100df
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, ebx
cmp esi, eax
jae 0x10100df
mov ecx, dword [0x1006ec4]
and dword [ebp - 0x14], 0
sub esi, ebx
dec ecx
js 0x100fa61
mov eax, dword [ebp - 0x14]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1006ad8]
mov dword [ebp - 0x28], edx
mov edx, dword [edx + 4]
and edx, edi
cmp esi, edx
jae 0x100fa52
lea ecx, [eax - 1]
jmp 0x100fa5c
jbe 0x100fb73
inc eax
mov dword [ebp - 0x14], eax
cmp ecx, dword [ebp - 0x14]
jge 0x100fa30
xor ecx, ecx
test ecx, ecx
je 0x10100df
mov eax, dword [ecx]
mov edx, eax
shr eax, 4
mov edi, eax
shr edx, 1
and edx, 7
lea ecx, [edx + ecx + 8]
lea esi, [edi + ecx]
mov eax, dword [0x102dddc]
mov dword [ebp - 8], ecx
sub eax, edi
sub dword [ebp - 8], ebx
mov dword [ebp + 0x14], ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], esi
lea ecx, [eax + 1]
mov dword [ebp - 0x14], ecx
xor eax, eax
test ecx, ecx
je 0x100facc
mov edx, dword [0x10893f8]
shr dword [ebp - 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x10893f8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x14], 0
jne 0x100faa2
xor edx, edx
div ecx
mov eax, dword [ebp + 0x10]
add eax, edx
push edi
push dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov eax, 0x45f23099
test edi, edi
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
mov eax, dword [esi + 4]
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
mov byte [ebp + 0x13], 0
jbe 0x100ff8c
lea esi, [ebp - 0x60]
mov eax, 0xf9486c21
mov eax, 0xfffffff
mov esi, dword [ebp - 0x60]
mov ecx, dword [0x100771c]
mov edi, dword [ebp - 0x5c]
and dword [ebp - 0x50], 0
and dword [ebp - 0x4c], 0
and esi, eax
and edi, eax
mov eax, ebx
add esi, ebx
sub eax, ecx
mov dword [ebp - 0x24], eax
jne 0x100fb8c
and dword [ebp - 0x14], 0
test edi, edi
jbe 0x100fd61
mov ecx, 0x54594da6
mov eax, dword [ebp - 0x14]
mov edx, ecx
movzx eax, byte [eax + esi]
add eax, ecx
add dword [ebp - 0x50], eax
add eax, dword [ebp - 0x4c]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa77f
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x50], edx
inc dword [ebp - 0x14]
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x14], edi
jb 0x100fb3b
jmp 0x100fd61
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, edi
and eax, 0x3f
lea ecx, [ecx + eax + 0x1000000]
jmp 0x100fa63
lea eax, [edi + esi]
mov edx, dword [0x100003c]
lea edx, [edx + 0x10000a0]
mov ecx, esi
mov dword [ebp - 0x1c], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
add eax, ebx
sub ecx, ebx
mov ebx, ecx
and ebx, 0xfffff000
mov dword [ebp - 0x14], ebx
mov ebx, ecx
sub ebx, dword [ebp - 0x14]
add ecx, edi
mov edi, ecx
and edi, 0xfffff000
mov dword [ebp - 0x74], edi
sub ecx, edi
mov dword [ebp - 0x70], ecx
add edx, eax
mov edi, eax
cmp eax, edx
mov dword [ebp - 0x6c], edx
je 0x100fbe5
mov eax, dword [ebp - 0x14]
cmp dword [edi], eax
jae 0x100fbe5
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x6c]
jne 0x100fbd6
and dword [ebp - 0x64], 0
mov edx, 0xfff
cmp edi, dword [ebp - 0x6c]
je 0x100fc22
mov eax, dword [ebp - 0x14]
cmp dword [edi], eax
jne 0x100fc22
mov eax, dword [edi + 4]
sub eax, 8
shr eax, 1
je 0x100fc22
lea ecx, [edi + 8]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
movzx ecx, word [ecx]
and ecx, edx
cmp ecx, ebx
jae 0x100fc22
inc dword [ebp - 0x64]
add dword [ebp - 0x14], 2
cmp dword [ebp - 0x64], eax
jne 0x100fc0a
mov ecx, 0x54594da6
cmp edi, dword [ebp - 0x6c]
je 0x100fd26
mov eax, dword [edi]
cmp eax, dword [ebp - 0x74]
ja 0x100fd26
mov eax, dword [edi + 4]
lea ebx, [eax - 8]
shr ebx, 1
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jne 0x100fc67
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x6c]
je 0x100fd26
mov eax, dword [ebp - 0x74]
cmp dword [edi], eax
ja 0x100fd26
and dword [ebp - 0x64], 0
jmp 0x100fc3b
mov ebx, dword [ebp - 0x74]
cmp dword [edi], ebx
jne 0x100fc7e
movzx eax, word [edi + eax*2 + 8]
and eax, edx
cmp eax, dword [ebp - 0x70]
jae 0x100fd26
mov ebx, 0xf000
mov eax, dword [ebp - 0x64]
inc dword [ebp - 0x64]
test word [edi + eax*2 + 8], bx
je 0x100fc27
movzx eax, word [edi + eax*2 + 8]
and eax, edx
xor ebx, ebx
mov edx, dword [edi]
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x14], eax
sub dword [ebp - 0x14], esi
mov dword [ebp - 0x28], eax
je 0x100fcdd
mov edx, ecx
movzx eax, byte [ebx + esi]
add eax, ecx
add dword [ebp - 0x50], eax
add eax, dword [ebp - 0x4c]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa77f
rol edx, 6
ror eax, 6
xor edx, eax
mov eax, edx
add dword [ebp - 0x50], eax
inc ebx
mov dword [ebp - 0x4c], edx
cmp ebx, dword [ebp - 0x14]
jb 0x100fcad
mov esi, dword [ebp - 0x28]
mov eax, dword [esi]
sub eax, dword [ebp - 0x24]
xor ebx, ebx
mov dword [ebp - 0x2c], eax
mov edx, ecx
movzx eax, byte [ebp + ebx - 0x2c]
add eax, ecx
add dword [ebp - 0x50], eax
add eax, dword [ebp - 0x4c]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa77f
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], edx
inc ebx
cmp ebx, 4
jb 0x100fcea
mov edx, 0xfff
add esi, 4
jmp 0x100fc27
mov ebx, dword [ebp - 0x1c]
xor edi, edi
sub ebx, esi
je 0x100fd5c
movzx eax, byte [edi + esi]
add eax, ecx
mov edx, ecx
add dword [ebp - 0x50], eax
add eax, dword [ebp - 0x4c]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa77f
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x50], edx
inc edi
mov dword [ebp - 0x4c], edx
cmp edi, ebx
jb 0x100fd2f
mov ebx, 0x1000000
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x50]
mov byte [ebp + eax - 0x40], cl
inc eax
cmp eax, 6
jb 0x100fd63
mov eax, 0x9c62b758
mov eax, 0x100
mov ecx, dword [ebp - 0x18]
or byte [ebp - 0x40], 1
or byte [ebp - 0x3e], 1
or byte [ebp - 0x3c], 1
or byte [ebp - 0x3b], 1
dec ecx
mov dword [ebp - 0x1c], ecx
je 0x100ff23
mov edx, dword [ebp + 0x14]
lea esi, [ecx + edx]
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 0x10]
sub esi, edx
mov dword [ebp - 0x28], esi
test cl, 1
je 0x100fe5a
mov esi, dword [ebp - 0xc]
mov cl, byte [ebp - 0x3d]
movzx edi, byte [ebp - 0x3d]
xor cl, byte [esi]
and cl, 1
mov byte [ebp - 1], cl
movzx ecx, byte [esi]
je 0x100fde4
mov edx, edi
movzx esi, byte [ebp - 0x3e]
shr edx, 1
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x100fdea
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, dword [ebp - 0xc]
movzx edx, byte [edx - 1]
mov dword [ebp - 0x14], edx
mov edx, esi
xor edx, dword [ebp - 0x14]
test dl, 1
je 0x100fe34
cmp byte [ebp - 1], 0
je 0x100fe16
movzx edx, byte [ebp - 0x3e]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100fe1c
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x3b]
shr ecx, 1
xor ecx, 0x80
xor edx, dword [ebp - 0x14]
sar edx, 1
xor ecx, edx
jmp 0x100ff02
cmp byte [ebp - 1], 0
je 0x100fe4c
movzx edx, byte [ebp - 0x3e]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100fe52
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, dword [ebp - 0x14]
jmp 0x100fefe
mov cl, byte [ebp - 0x3f]
movzx edi, byte [ebp - 0x3f]
mov edx, dword [ebp - 0xc]
xor cl, byte [edx]
and cl, 1
mov byte [ebp - 1], cl
mov ecx, edx
movzx ecx, byte [ecx]
je 0x100fe89
movzx esi, byte [ebp - 0x40]
mov edx, edi
shr edx, 1
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x100fe8f
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, esi
mov esi, dword [ebp - 0xc]
movzx esi, byte [esi - 1]
xor edx, esi
test dl, 1
je 0x100fed7
cmp byte [ebp - 1], 0
je 0x100feb7
movzx edx, byte [ebp - 0x40]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100febd
xor ecx, edi
shr ecx, 1
mov edx, ecx
mov esi, dword [ebp - 0xc]
movzx esi, byte [esi - 1]
movzx ecx, byte [ebp - 0x3c]
shr ecx, 1
xor ecx, 0x80
xor edx, esi
jmp 0x100fe2b
cmp byte [ebp - 1], 0
je 0x100feef
movzx edx, byte [ebp - 0x40]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100fef5
xor ecx, edi
shr ecx, 1
mov edx, ecx
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx - 1]
xor edx, ecx
sar edx, 1
mov ecx, edx
mov esi, dword [ebp - 0xc]
xor byte [ebp + 0x13], cl
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x14], ecx
mov byte [esi + edx], cl
mov ecx, dword [ebp - 0x1c]
dec ecx
dec dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
ja 0x100fdae
mov ecx, dword [ebp + 0x14]
movzx esi, byte [ebp - 0x3f]
mov dl, byte [ebp - 0x3f]
xor dl, byte [ecx]
movzx ecx, byte [ecx]
xor esi, ecx
shr esi, 1
and dl, 1
je 0x100ff47
movzx ecx, byte [ebp - 0x40]
xor ecx, eax
sar ecx, 1
xor ecx, esi
jmp 0x100ff49
mov ecx, esi
test cl, 1
je 0x100ff6a
test dl, dl
je 0x100ff5e
movzx edx, byte [ebp - 0x40]
xor edx, eax
sar edx, 1
xor edx, esi
jmp 0x100ff60
mov edx, esi
movzx ecx, byte [ebp - 0x3c]
xor ecx, edx
xor ecx, eax
jmp 0x100ff7c
test dl, dl
je 0x100ff7a
movzx ecx, byte [ebp - 0x40]
xor ecx, eax
sar ecx, 1
xor ecx, esi
jmp 0x100ff7c
mov ecx, esi
mov edi, dword [ebp - 0x18]
sar ecx, 1
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x30]
xor byte [ebp + 0x13], cl
mov byte [eax], cl
mov al, byte [esi + 8]
xor al, byte [ebp + 0x13]
je 0x1010019
call fcn.01035dac
mov esi, 0xffff
mov edx, 0xfffff000
mov ebx, eax
mov eax, dword [ebp + 8]
lea ecx, [eax + 0xc]
mov dword [eax + 8], 0x1021023
and ecx, 0xfffffffc
lea edi, [ecx + 0xfff]
mov dword [ebp + 0x14], esi
and ebx, edx
and edi, edx
xor eax, eax
mov edx, dword [0x10893f8]
shr dword [ebp + 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x10893f8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp + 0x14], 0
jne 0x100ffc8
xor edx, edx
div esi
inc edx
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x1c], ebx
mov dword [ebp + 0x14], 0
mov dword [eax], edx
jmp 0x1010010
mov eax, dword [ebp + 0x14]
mov dword [ecx], eax
add ecx, 4
cmp ecx, edi
jb 0x1010008
jmp 0x100f91b
mov ecx, dword [0x100771c]
mov eax, dword [ebp + 0x14]
sub eax, dword [ebp - 0x10]
sub ebx, ecx
mov dword [ebp + 8], eax
mov dword [ebp + 0x10], ebx
jne 0x1010037
test eax, eax
je 0x100f9ef
mov ebx, dword [ebp - 0x10]
sub ebx, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
mov ecx, dword [0x101c5b0]
add edi, eax
mov dword [ebp + 0x14], edi
xor edi, edi
dec ecx
js 0x1010078
lea eax, [ecx + edi]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x101c5b4]
and edx, 0xfffffff
cmp dword [ebp - 8], edx
jae 0x101006f
lea ecx, [eax - 1]
jmp 0x1010074
jbe 0x101007c
lea edi, [eax + 1]
cmp ecx, edi
jge 0x1010050
mov esi, edi
jmp 0x10100d2
mov esi, eax
jmp 0x10100d2
mov eax, dword [esi*4 + 0x101c5b4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp + 0x14]
jae 0x100f9ef
lea edi, [ecx + ebx + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x10100c5
dec ecx
je 0x10100c0
dec ecx
jne 0x10100cb
mov edx, dword [ebp + 0x10]
jmp 0x10100cb
mov edx, dword [ebp + 8]
jmp 0x10100cb
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 8]
dec eax
dec eax
jne 0x10100d1
add dword [edi], edx
inc esi
cmp esi, dword [0x101c5b0]
jb 0x1010080
jmp 0x100f9ef
mov eax, 0xbaed32d7
mov edi, dword [ebp + 0x10]
mov esi, 0x107f008
cmp edi, esi
jb 0x1010127
mov eax, dword [0x101da18]
mov ecx, dword [0x102dddc]
imul eax, ecx
lea eax, [eax + 0x107f008]
cmp edi, eax
jae 0x1010127
mov ecx, dword [0x102dddc]
mov eax, edi
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x102dddc]
imul ecx, eax
lea ecx, [ecx + 0x107f008]
jmp 0x1010129
xor ecx, ecx
test ecx, ecx
je 0x101014e
mov eax, edi
sub eax, esi
xor edx, edx
mov ecx, dword [0x102dddc]
div ecx
mov ecx, dword [0x101da18]
mov dword [eax*4 + 0x1088fa0], 0xd1a4
jmp 0x101016b
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 + 0x14]
pop edi
pop esi
pop ebx
leave
ret 0x10