Function at 0x1009e9e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edi, edi
sub esp, 0x74
push ebx
mov ebx, 0x1000000
push esi
mov esi, dword [ebp + 0x14]
push edi
cmp esi, ebx
mov edi, 0xfffffff
jb 0x100a5f7
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, ebx
cmp esi, eax
jae 0x100a5f7
mov ecx, dword [0x103c620]
and dword [ebp - 0x14], 0
sub esi, ebx
dec ecx
js 0x1009f13
mov eax, dword [ebp - 0x14]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1022ac0]
mov dword [ebp - 0x1c], edx
mov edx, dword [edx + 4]
and edx, edi
cmp esi, edx
jae 0x1009f04
lea ecx, [eax - 1]
jmp 0x1009f0e
jbe 0x100a02c
inc eax
mov dword [ebp - 0x14], eax
cmp ecx, dword [ebp - 0x14]
jge 0x1009ee2
xor eax, eax
test eax, eax
je 0x100a5f7
mov esi, dword [eax + 4]
mov ecx, dword [eax]
and ecx, 7
and esi, edi
lea ecx, [ecx + eax + 8]
lea edi, [esi + ecx]
mov eax, dword [0x1005bf8]
mov dword [ebp - 8], ecx
sub eax, esi
sub dword [ebp - 8], ebx
mov dword [ebp + 0x14], ecx
lea ecx, [eax + 1]
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x14], ecx
je 0x1009f7a
mov edx, dword [0x104c148]
shr dword [ebp - 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x104c148], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x14], 0
jne 0x1009f50
xor edx, edx
div ecx
mov eax, dword [ebp + 0x10]
push esi
push dword [ebp - 8]
add eax, edx
mov dword [ebp - 0x10], eax
mov eax, 0x4dc4cfd
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 0x100a489
lea esi, [ebp - 0x58]
mov eax, 0xe9a62c3b
mov edi, dword [0x1033b04]
mov edx, dword [ebp - 0x58]
mov eax, 0xfffffff
mov esi, dword [ebp - 0x54]
and edx, eax
and esi, eax
mov eax, ebx
xor ecx, ecx
add edx, ebx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
sub eax, edi
mov dword [ebp - 0xc], eax
jne 0x100a045
cmp esi, ecx
mov dword [ebp - 0xc], ecx
jbe 0x100a22e
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 0x1009fe8
jmp 0x100a22e
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
and ecx, edi
mov eax, dword [eax]
and eax, 0x3f
lea eax, [eax + ecx + 0x1000000]
jmp 0x1009f15
lea eax, [edx + esi]
mov ecx, edx
mov edi, dword [0x100003c]
mov dword [ebp - 0x24], eax
lea edi, [edi + 0x10000a0]
mov eax, dword [edi]
add eax, ebx
sub ecx, ebx
mov edi, dword [edi + 4]
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
sub ecx, esi
add edi, eax
mov dword [ebp - 0x74], esi
mov esi, eax
cmp eax, edi
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edi
je 0x100a09e
mov eax, dword [ebp - 0x14]
cmp dword [esi], eax
jae 0x100a09e
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x6c]
jne 0x100a08f
and dword [ebp - 0x64], 0
cmp esi, dword [ebp - 0x6c]
je 0x100a0d2
mov eax, dword [ebp - 0x14]
cmp dword [esi], eax
jne 0x100a0d2
mov ecx, dword [esi + 4]
sub ecx, 8
shr ecx, 1
je 0x100a0d2
lea eax, [esi + 8]
movzx edi, word [eax]
and edi, 0xfff
cmp edi, ebx
jae 0x100a0d2
inc dword [ebp - 0x64]
inc eax
inc eax
cmp dword [ebp - 0x64], ecx
jne 0x100a0bb
mov edi, 0x6a74adea
cmp esi, dword [ebp - 0x6c]
je 0x100a1e7
mov ecx, dword [ebp - 0x74]
cmp dword [esi], ecx
ja 0x100a1e7
mov eax, dword [esi + 4]
lea ebx, [eax - 8]
shr ebx, 1
cmp dword [ebp - 0x64], ebx
jne 0x100a111
add esi, eax
cmp esi, dword [ebp - 0x6c]
je 0x100a1e7
cmp dword [esi], ecx
ja 0x100a1e7
and dword [ebp - 0x64], 0
jmp 0x100a0eb
cmp dword [esi], ecx
jne 0x100a12b
mov eax, dword [ebp - 0x64]
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x70]
jae 0x100a1e7
mov ecx, 0xf000
mov eax, dword [ebp - 0x64]
inc dword [ebp - 0x64]
test word [esi + eax*2 + 8], cx
je 0x100a0d7
mov ecx, dword [esi]
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
lea eax, [eax + ecx + 0x1000000]
xor ecx, ecx
mov dword [ebp - 0x14], eax
sub dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
je 0x100a197
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 0x100a15d
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebx]
sub eax, dword [ebp - 0xc]
xor ecx, ecx
mov dword [ebp - 0x20], eax
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
mov dword [ebp - 0x44], eax
inc ecx
cmp ecx, 4
jb 0x100a1a4
lea edx, [ebx + 4]
jmp 0x100a0d7
xor esi, esi
mov ebx, dword [ebp - 0x24]
sub ebx, edx
je 0x100a229
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
mov dword [ebp - 0x44], eax
inc esi
cmp esi, ebx
jb 0x100a1f0
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 0x100a230
mov eax, 0x64d91798
mov eax, 0x100
mov ecx, dword [ebp - 0x1c]
or byte [ebp - 0x38], 1
or byte [ebp - 0x36], 1
or byte [ebp - 0x34], 1
or byte [ebp - 0x33], 1
dec ecx
mov dword [ebp - 0x18], ecx
je 0x100a3f1
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 0x100a326
mov esi, dword [ebp - 0xc]
movzx edi, byte [ebp - 0x35]
mov cl, byte [esi]
xor cl, byte [ebp - 0x35]
and cl, 1
mov byte [ebp - 1], cl
movzx ecx, byte [esi]
je 0x100a2b1
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 0x100a2b7
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 0x100a300
cmp byte [ebp - 1], 0
je 0x100a2e0
movzx edx, byte [ebp - 0x36]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a2e6
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x33]
shr ecx, 1
mov esi, dword [ebp - 0x14]
xor esi, edx
xor ecx, 0x80
sar esi, 1
xor ecx, esi
jmp 0x100a3d0
cmp byte [ebp - 1], 0
je 0x100a318
movzx edx, byte [ebp - 0x36]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a31e
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, dword [ebp - 0x14]
jmp 0x100a3cc
movzx edi, byte [ebp - 0x37]
mov ecx, dword [ebp - 0xc]
mov cl, byte [ecx]
xor cl, byte [ebp - 0x37]
and cl, 1
mov byte [ebp - 1], cl
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx]
je 0x100a356
movzx esi, byte [ebp - 0x38]
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 0x100a35c
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 0x100a3a5
cmp byte [ebp - 1], 0
je 0x100a384
movzx edx, byte [ebp - 0x38]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a38a
xor ecx, edi
shr ecx, 1
mov edx, ecx
mov esi, dword [ebp - 0xc]
movzx ecx, byte [ebp - 0x34]
movzx esi, byte [esi - 1]
shr ecx, 1
xor edx, esi
xor ecx, 0x80
sar edx, 1
xor ecx, edx
jmp 0x100a3d0
cmp byte [ebp - 1], 0
je 0x100a3bd
movzx edx, byte [ebp - 0x38]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a3c3
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]
mov dword [ebp - 0x18], ecx
test ecx, ecx
ja 0x100a27b
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 0x100a41e
movzx edx, byte [ebp - 0x38]
movzx esi, byte [ebp - 0x37]
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 0x100a42e
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 0x100a45b
cmp byte [ebp - 1], 0
je 0x100a44b
movzx edi, byte [ebp - 0x38]
shr edi, 1
shr esi, 1
xor ecx, eax
xor edi, esi
sar ecx, 1
xor edi, ecx
jmp 0x100a451
xor ecx, esi
shr ecx, 1
mov edi, ecx
movzx edx, byte [ebp - 0x34]
xor edx, edi
xor edx, eax
jmp 0x100a479
cmp byte [ebp - 1], 0
je 0x100a473
movzx edx, byte [ebp - 0x38]
shr edx, 1
shr esi, 1
xor ecx, eax
xor edx, esi
sar ecx, 1
xor edx, ecx
jmp 0x100a479
xor ecx, esi
shr ecx, 1
mov edx, ecx
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x1c]
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 0x100a51b
call fcn.0100ddeb
mov edx, 0xfffff000
mov ebx, eax
mov eax, dword [ebp + 8]
lea ecx, [eax + 0xc]
mov esi, 0xffff
mov dword [eax + 8], 0x1040348
and ecx, 0xfffffffc
lea edi, [ecx + 0xfff]
mov dword [ebp + 0x14], esi
and ebx, edx
and edi, edx
xor eax, eax
mov edx, dword [0x104c148]
shr dword [ebp + 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x104c148], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp + 0x14], 0
jne 0x100a4c5
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 0x100a50d
mov eax, dword [ebp + 0x14]
mov dword [ecx], eax
add ecx, 4
cmp ecx, edi
jb 0x100a505
mov eax, 0x1040348
jmp 0x100ad64
mov eax, dword [0x1033b04]
mov edi, dword [ebp + 0x14]
sub edi, dword [ebp - 0x10]
sub ebx, eax
mov dword [ebp + 0x10], edi
mov dword [ebp + 8], ebx
jne 0x100a538
test edi, edi
je 0x100a5e5
mov eax, dword [ebp - 8]
mov ecx, dword [0x101a560]
mov ebx, dword [ebp - 0x10]
sub ebx, dword [ebp + 0x14]
add eax, esi
xor esi, esi
dec ecx
mov dword [ebp + 0xc], eax
js 0x100a57c
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x101a564]
and edx, 0xfffffff
cmp dword [ebp - 8], edx
jae 0x100a570
lea ecx, [eax - 1]
jmp 0x100a575
jbe 0x100a581
lea esi, [eax + 1]
cmp ecx, esi
jge 0x100a551
mov edi, dword [ebp + 0x10]
mov dword [ebp + 0x14], esi
jmp 0x100a5da
mov edi, dword [ebp + 0x10]
mov dword [ebp + 0x14], eax
jmp 0x100a5da
mov eax, dword [ebp + 0x14]
mov eax, dword [eax*4 + 0x101a564]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp + 0xc]
jae 0x100a5e5
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 0x100a5cc
dec ecx
je 0x100a5c8
dec ecx
jne 0x100a5d1
mov edx, dword [ebp + 8]
jmp 0x100a5d1
mov edx, edi
jmp 0x100a5d1
mov edx, dword [ebp + 8]
sub edx, edi
dec eax
dec eax
jne 0x100a5d7
add dword [esi], edx
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
cmp eax, dword [0x101a560]
jb 0x100a589
mov eax, dword [0x1005bf8]
mov eax, 0xdcbc37ac
mov eax, dword [ebp - 0x10]
jmp 0x100ad64
mov esi, dword [ebp + 0x14]
cmp esi, ebx
jb 0x100acd5
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, ebx
cmp esi, eax
jae 0x100acd5
mov ecx, dword [0x101804c]
and dword [ebp - 0x14], 0
sub esi, ebx
dec ecx
js 0x100a657
mov eax, dword [ebp - 0x14]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x101ca20]
mov dword [ebp - 0x28], edx
mov edx, dword [edx + 4]
and edx, edi
cmp esi, edx
jae 0x100a648
lea ecx, [eax - 1]
jmp 0x100a652
jbe 0x100a769
inc eax
mov dword [ebp - 0x14], eax
cmp ecx, dword [ebp - 0x14]
jge 0x100a626
xor ecx, ecx
test ecx, ecx
je 0x100acd5
mov eax, dword [ecx]
mov edx, eax
shr eax, 4
mov edi, eax
shr edx, 1
mov eax, dword [0x1005bf8]
and edx, 7
lea ecx, [edx + ecx + 8]
sub eax, edi
mov dword [ebp - 8], ecx
lea esi, [edi + ecx]
sub dword [ebp - 8], ebx
mov dword [ebp + 0x14], ecx
lea ecx, [eax + 1]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], esi
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x14], ecx
je 0x100a6c2
mov edx, dword [0x104c148]
shr dword [ebp - 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x104c148], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x14], 0
jne 0x100a698
xor edx, edx
div ecx
mov eax, dword [ebp + 0x10]
push edi
add eax, edx
push dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov eax, 0xcc5013f7
mov eax, dword [esi]
test edi, edi
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 0x100ab82
lea esi, [ebp - 0x60]
mov eax, 0x43b01faf
mov edi, dword [ebp - 0x5c]
mov eax, 0xfffffff
mov esi, dword [ebp - 0x60]
mov ecx, dword [0x1033b04]
and dword [ebp - 0x50], 0
and dword [ebp - 0x4c], 0
and esi, eax
and edi, eax
add esi, ebx
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x24], eax
jne 0x100a782
and dword [ebp - 0x14], 0
test edi, edi
jbe 0x100a957
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 0x100a731
jmp 0x100a957
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 0x100a659
lea eax, [edi + esi]
mov edx, dword [0x100003c]
mov dword [ebp - 0x1c], eax
lea edx, [edx + 0x10000a0]
mov eax, dword [edx]
add eax, ebx
mov edx, dword [edx + 4]
mov ecx, esi
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 edi, eax
mov dword [ebp - 0x70], ecx
add edx, eax
mov dword [ebp - 0x6c], edx
cmp eax, edx
je 0x100a7db
mov eax, dword [ebp - 0x14]
cmp dword [edi], eax
jae 0x100a7db
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x6c]
jne 0x100a7cc
and dword [ebp - 0x64], 0
cmp edi, dword [ebp - 0x6c]
mov edx, 0xfff
je 0x100a818
mov eax, dword [ebp - 0x14]
cmp dword [edi], eax
jne 0x100a818
mov eax, dword [edi + 4]
sub eax, 8
shr eax, 1
je 0x100a818
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 0x100a818
inc dword [ebp - 0x64]
add dword [ebp - 0x14], 2
cmp dword [ebp - 0x64], eax
jne 0x100a800
mov ecx, 0x54594da6
cmp edi, dword [ebp - 0x6c]
je 0x100a91c
mov eax, dword [edi]
cmp eax, dword [ebp - 0x74]
ja 0x100a91c
mov eax, dword [edi + 4]
lea ebx, [eax - 8]
shr ebx, 1
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jne 0x100a85d
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x6c]
je 0x100a91c
mov eax, dword [ebp - 0x74]
cmp dword [edi], eax
ja 0x100a91c
and dword [ebp - 0x64], 0
jmp 0x100a831
mov ebx, dword [ebp - 0x74]
cmp dword [edi], ebx
jne 0x100a874
movzx eax, word [edi + eax*2 + 8]
and eax, edx
cmp eax, dword [ebp - 0x70]
jae 0x100a91c
mov eax, dword [ebp - 0x64]
inc dword [ebp - 0x64]
mov ebx, 0xf000
test word [edi + eax*2 + 8], bx
je 0x100a81d
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 0x100a8d3
movzx eax, byte [ebx + esi]
add eax, ecx
add dword [ebp - 0x50], eax
add eax, dword [ebp - 0x4c]
mov edx, ecx
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
mov dword [ebp - 0x4c], edx
inc ebx
cmp ebx, dword [ebp - 0x14]
jb 0x100a8a3
mov esi, dword [ebp - 0x28]
mov eax, dword [esi]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
xor ebx, ebx
movzx eax, byte [ebp + ebx - 0x2c]
add eax, ecx
add dword [ebp - 0x50], eax
mov edx, ecx
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 0x100a8e0
mov edx, 0xfff
add esi, 4
jmp 0x100a81d
xor edi, edi
mov ebx, dword [ebp - 0x1c]
sub ebx, esi
je 0x100a952
mov edx, ecx
movzx eax, byte [edi + 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 edi
mov dword [ebp - 0x4c], edx
cmp edi, ebx
jb 0x100a925
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 0x100a959
mov eax, 0xbd1dc5e
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 0x100ab19
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 0x100aa50
mov cl, byte [ebp - 0x3d]
mov esi, dword [ebp - 0xc]
xor cl, byte [esi]
movzx edi, byte [ebp - 0x3d]
and cl, 1
mov byte [ebp - 1], cl
movzx ecx, byte [esi]
je 0x100a9da
movzx esi, byte [ebp - 0x3e]
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 0x100a9e0
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 0x100aa2a
cmp byte [ebp - 1], 0
je 0x100aa0c
movzx edx, byte [ebp - 0x3e]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100aa12
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 0x100aaf8
cmp byte [ebp - 1], 0
je 0x100aa42
movzx edx, byte [ebp - 0x3e]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100aa48
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, dword [ebp - 0x14]
jmp 0x100aaf4
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 0x100aa7f
mov edx, edi
movzx esi, byte [ebp - 0x40]
shr edx, 1
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x100aa85
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 0x100aacd
cmp byte [ebp - 1], 0
je 0x100aaad
movzx edx, byte [ebp - 0x40]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100aab3
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 0x100aa21
cmp byte [ebp - 1], 0
je 0x100aae5
movzx edx, byte [ebp - 0x40]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100aaeb
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]
test ecx, ecx
mov dword [ebp - 0x1c], ecx
ja 0x100a9a4
mov dl, byte [ebp - 0x3f]
mov ecx, dword [ebp + 0x14]
xor dl, byte [ecx]
movzx ecx, byte [ecx]
movzx esi, byte [ebp - 0x3f]
xor esi, ecx
shr esi, 1
and dl, 1
je 0x100ab3d
movzx ecx, byte [ebp - 0x40]
xor ecx, eax
sar ecx, 1
xor ecx, esi
jmp 0x100ab3f
mov ecx, esi
test cl, 1
je 0x100ab60
test dl, dl
je 0x100ab54
movzx edx, byte [ebp - 0x40]
xor edx, eax
sar edx, 1
xor edx, esi
jmp 0x100ab56
mov edx, esi
movzx ecx, byte [ebp - 0x3c]
xor ecx, edx
xor ecx, eax
jmp 0x100ab72
test dl, dl
je 0x100ab70
movzx ecx, byte [ebp - 0x40]
xor ecx, eax
sar ecx, 1
xor ecx, esi
jmp 0x100ab72
mov ecx, esi
mov eax, dword [ebp - 0x10]
sar ecx, 1
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x18]
xor byte [ebp + 0x13], cl
mov byte [eax], cl
mov al, byte [esi + 8]
xor al, byte [ebp + 0x13]
je 0x100ac0f
call fcn.0100ddeb
mov edx, 0xfffff000
mov esi, 0xffff
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 8], 0x1040348
mov dword [ebp + 0x14], esi
lea ecx, [eax + 0xc]
and ecx, 0xfffffffc
lea edi, [ecx + 0xfff]
and ebx, edx
and edi, edx
xor eax, eax
mov edx, dword [0x104c148]
shr dword [ebp + 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x104c148], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp + 0x14], 0
jne 0x100abbe
xor edx, edx
div esi
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x1c], ebx
inc edx
mov dword [ebp + 0x14], 0
mov dword [eax], edx
jmp 0x100ac06
mov eax, dword [ebp + 0x14]
mov dword [ecx], eax
add ecx, 4
cmp ecx, edi
jb 0x100abfe
jmp 0x100a511
mov eax, dword [ebp + 0x14]
mov ecx, dword [0x1033b04]
sub eax, dword [ebp - 0x10]
mov dword [ebp + 8], eax
sub ebx, ecx
mov dword [ebp + 0x10], ebx
jne 0x100ac2d
test eax, eax
je 0x100a5e5
mov ecx, dword [0x101a560]
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x10]
sub ebx, dword [ebp + 0x14]
add edi, eax
mov dword [ebp + 0x14], edi
xor edi, edi
dec ecx
js 0x100ac6e
lea eax, [ecx + edi]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x101a564]
and edx, 0xfffffff
cmp dword [ebp - 8], edx
jae 0x100ac65
lea ecx, [eax - 1]
jmp 0x100ac6a
jbe 0x100ac72
lea edi, [eax + 1]
cmp ecx, edi
jge 0x100ac46
mov esi, edi
jmp 0x100acc8
mov esi, eax
jmp 0x100acc8
mov eax, dword [esi*4 + 0x101a564]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp + 0x14]
jae 0x100a5e5
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 0x100acbb
dec ecx
je 0x100acb6
dec ecx
jne 0x100acc1
mov edx, dword [ebp + 0x10]
jmp 0x100acc1
mov edx, dword [ebp + 8]
jmp 0x100acc1
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 8]
dec eax
dec eax
jne 0x100acc7
add dword [edi], edx
inc esi
cmp esi, dword [0x101a560]
jb 0x100ac76
jmp 0x100a5e5
mov eax, 0x14550980
mov edi, dword [ebp + 0x10]
mov esi, 0x1043008
cmp edi, esi
jb 0x100ad1d
mov eax, dword [0x1040344]
mov ecx, dword [0x1005bf8]
imul eax, ecx
lea eax, [eax + 0x1043008]
cmp edi, eax
jae 0x100ad1d
mov ecx, dword [0x1005bf8]
mov eax, edi
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x1005bf8]
imul ecx, eax
lea ecx, [ecx + 0x1043008]
jmp 0x100ad1f
xor ecx, ecx
test ecx, ecx
je 0x100ad44
mov ecx, dword [0x1005bf8]
mov eax, edi
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x1040344]
mov dword [eax*4 + 0x104d53c], 0xd1a4
jmp 0x100ad61
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