Function at 0x1001ce80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2d4
mov eax, dword [0x1003a008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0xff
lea eax, [ebp - 0x183]
mov dword [ebp - 0x2d4], ecx
push 0
push eax
mov esi, edx
call fcn.1001fb10
add esp, 0xc
mov dword [ebp - 0x290], 0xb1beb3b0
mov dword [ebp - 0x28c], 0xbcbbbdb7
xor ecx, ecx
mov byte [ebp - 0x288], 0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x290], al
inc ecx
cmp ecx, 8
jb 0x1001ced1
xorps xmm0, xmm0
mov byte [ebp - 0x288], 0
mov dword [ebp - 0x2d0], 0
xor ecx, ecx
movups xmmword [ebp - 0x24], xmm0
mov dword [ebp - 0x2a8], 0xb1beb3b0
movups xmmword [ebp - 0x14], xmm0
mov dword [ebp - 0x2a4], 0xb9bbbdb7
mov byte [ebp - 0x2a0], 0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2a8], al
inc ecx
cmp ecx, 8
jb 0x1001cf20
mov al, byte [ebp - 0x2a8]
mov byte [ebp - 0x2a0], 0
mov byte [ebp - 0x24], al
test al, al
je 0x1001cf62
xor ecx, ecx
nop word [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x2a8]
mov byte [ebp + ecx - 0x24], al
test al, al
jne 0x1001cf50
movsx ebx, byte [ebp - 0x290]
mov edi, 3
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x24]
inc cl
mov byte [ebp - 0x24], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x24]
cdq
idiv ecx
movzx eax, byte [ebp - 0x23]
or edx, ebx
add al, dl
mov byte [ebp - 0x23], al
movzx eax, byte [ebp - 0x23]
mov cl, byte [ebp - 0x24]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x21]
mov byte [ebp - 0x21], cl
movsx ecx, byte [ebp - 0x21]
movzx eax, byte [ebp - 0x20]
sar ecx, 6
add al, cl
mov byte [ebp - 0x20], al
xor eax, eax
nop dword [eax]
movsx edx, byte [ebp + edi - 0x24]
movsx ecx, byte [ebp + edi - 0x25]
add edx, edx
add ecx, edx
inc edi
lea eax, [eax + ecx*2]
cmp edi, 0x11
jl 0x1001cfc0
mov ecx, dword [ebp - 0x2d0]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1001d037
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2d0], eax
cmp dword [ebp - 0x2d0], 0xe
jle 0x1001d00a
mov dword [ebp - 0x2d0], 1
mov al, byte [ebp - 0x290]
mov byte [ebp - 0x184], al
test al, al
je 0x1001d065
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x290]
mov byte [ebp + ecx - 0x184], al
test al, al
jne 0x1001d020
jmp 0x1001d065
mov al, byte [ebp - 0x290]
mov byte [ebp - 0x184], al
test al, al
je 0x1001d065
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x290]
mov byte [ebp + ecx - 0x184], al
test al, al
jne 0x1001d050
mov ebx, dword [ebp - 0x2d4]
xorps xmm0, xmm0
mov edi, ebx
mov dword [ebp - 0x2d0], 0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x2b4], 0xb1beb3b0
xor ecx, ecx
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x2b0], 0xb9bbbdb7
mov byte [ebp - 0x2ac], 0
nop
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2b4], al
inc ecx
cmp ecx, 8
jb 0x1001d0a0
mov al, byte [ebp - 0x2b4]
mov byte [ebp - 0x2ac], 0
mov byte [ebp - 0x44], al
test al, al
je 0x1001d0e2
xor ecx, ecx
nop word [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x2b4]
mov byte [ebp + ecx - 0x44], al
test al, al
jne 0x1001d0d0
test ebx, ebx
je 0x1001d133
mov al, byte [ebx]
mov cl, al
add al, al
add cl, al
add cl, byte [ebp - 0x44]
inc cl
mov byte [ebp - 0x44], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x44]
cdq
idiv ecx
movzx eax, byte [ebp - 0x43]
movsx ecx, byte [ebx]
or ecx, edx
add al, cl
mov byte [ebp - 0x43], al
movzx eax, byte [ebp - 0x43]
mov cl, byte [ebp - 0x44]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x41]
mov byte [ebp - 0x41], cl
movsx ecx, byte [ebp - 0x41]
movzx eax, byte [ebp - 0x40]
sar ecx, 6
add al, cl
mov byte [ebp - 0x40], al
mov eax, 3
xor ebx, ebx
nop word [eax + eax]
movsx edx, byte [ebp + eax - 0x44]
movsx ecx, byte [ebp + eax - 0x45]
add edx, edx
add ecx, edx
inc eax
lea ebx, [ebx + ecx*2]
cmp eax, 0x11
jl 0x1001d140
mov ecx, dword [ebp - 0x2d0]
mov eax, ebx
cdq
mov ebx, edi
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1001d3a7
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2d0], eax
cmp dword [ebp - 0x2d0], 0xe
jle 0x1001d192
mov dword [ebp - 0x2d0], 1
mov dl, byte [ebx]
mov ecx, ebx
mov byte [ebp - 0x184], dl
test dl, dl
je 0x1001d5d1
lea edi, [ebp - 0x184]
sub edi, ebx
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x1001d1b0
test dl, dl
je 0x1001d5d1
xor eax, eax
inc eax
cmp byte [eax + ebx], 0
jne 0x1001d1c7
test eax, eax
je 0x1001d5d1
lea eax, [ebp - 0x184]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, eax
mov dword [ebp - 0x2d4], ebx
test ebx, ebx
jne 0x1001d20a
lea eax, [ebp - 0x184]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x2d4], eax
test eax, eax
je 0x1001d5d1
push 0xff
lea eax, [ebp - 0x283]
push 0
push eax
call fcn.1001fb10
add esp, 0xc
mov dword [ebp - 0x29c], 0xb1beb3b0
mov dword [ebp - 0x298], 0xbcbbbdb7
xor ecx, ecx
mov byte [ebp - 0x294], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x29c], al
inc ecx
cmp ecx, 8
jb 0x1001d240
xorps xmm0, xmm0
mov byte [ebp - 0x294], 0
mov dword [ebp - 0x2d0], 0
xor ecx, ecx
movups xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x2c0], 0xb1beb3b0
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x2bc], 0xb9bbbdb7
mov byte [ebp - 0x2b8], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2c0], al
inc ecx
cmp ecx, 8
jb 0x1001d290
mov al, byte [ebp - 0x2c0]
mov byte [ebp - 0x2b8], 0
mov byte [ebp - 0x64], al
test al, al
je 0x1001d2d2
xor ecx, ecx
nop word [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x2c0]
mov byte [ebp + ecx - 0x64], al
test al, al
jne 0x1001d2c0
movsx ebx, byte [ebp - 0x29c]
mov edi, 3
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x64]
inc cl
mov byte [ebp - 0x64], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x64]
cdq
idiv ecx
movzx eax, byte [ebp - 0x63]
or edx, ebx
add al, dl
mov byte [ebp - 0x63], al
movzx eax, byte [ebp - 0x63]
mov cl, byte [ebp - 0x64]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x61]
mov byte [ebp - 0x61], cl
movsx ecx, byte [ebp - 0x61]
movzx eax, byte [ebp - 0x60]
sar ecx, 6
add al, cl
mov byte [ebp - 0x60], al
xor eax, eax
nop dword [eax]
movsx edx, byte [ebp + edi - 0x64]
movsx ecx, byte [ebp + edi - 0x65]
add edx, edx
add ecx, edx
inc edi
lea eax, [eax + ecx*2]
cmp edi, 0x11
jl 0x1001d330
mov ecx, dword [ebp - 0x2d0]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1001d3d2
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2d0], eax
cmp dword [ebp - 0x2d0], 0xe
jle 0x1001d37a
mov dword [ebp - 0x2d0], 1
mov al, byte [ebp - 0x29c]
mov byte [ebp - 0x284], al
test al, al
je 0x1001d3f9
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x29c]
mov byte [ebp + ecx - 0x284], al
test al, al
jne 0x1001d390
jmp 0x1001d3f9
mov dl, byte [ebx]
mov byte [ebp - 0x184], dl
test dl, dl
je 0x1001d5d1
lea ecx, [ebp - 0x184]
sub ecx, ebx
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x1001d3c0
jmp 0x1001d1c5
mov al, byte [ebp - 0x29c]
mov byte [ebp - 0x284], al
test al, al
je 0x1001d3f9
xor ecx, ecx
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x29c]
mov byte [ebp + ecx - 0x284], al
test al, al
jne 0x1001d3e4
xorps xmm0, xmm0
mov dword [ebp - 0x2d0], 0
xor ebx, ebx
mov dword [ebp - 0x2cc], 0xb1beb3b0
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x2c8], 0xb9bbbdb7
xor ecx, ecx
movups xmmword [ebp - 0x74], xmm0
mov byte [ebp - 0x2c4], bl
nop
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x2cc], al
inc ecx
cmp ecx, 8
jb 0x1001d430
mov al, byte [ebp - 0x2cc]
mov byte [ebp - 0x2c4], bl
mov byte [ebp - 0x84], al
test al, al
je 0x1001d475
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x2cc]
mov byte [ebp + ecx - 0x84], al
test al, al
jne 0x1001d460
test esi, esi
je 0x1001d4e4
mov al, byte [esi]
mov cl, al
add al, al
add cl, al
add cl, byte [ebp - 0x84]
inc cl
mov byte [ebp - 0x84], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x84]
cdq
idiv ecx
movzx eax, byte [ebp - 0x83]
movsx ecx, byte [esi]
or ecx, edx
add al, cl
mov byte [ebp - 0x83], al
movzx eax, byte [ebp - 0x83]
mov cl, byte [ebp - 0x84]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x81]
mov byte [ebp - 0x81], cl
movsx ecx, byte [ebp - 0x81]
movzx eax, byte [ebp - 0x80]
sar ecx, 6
add al, cl
mov byte [ebp - 0x80], al
mov edi, 3
nop dword [eax]
movsx edx, byte [ebp + edi - 0x84]
movsx ecx, byte [ebp + edi - 0x85]
add edx, edx
add ecx, edx
inc edi
lea ebx, [ebx + ecx*2]
cmp edi, 0x11
jl 0x1001d4f0
mov ecx, dword [ebp - 0x2d0]
mov eax, ebx
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1001d587
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2d0], eax
cmp dword [ebp - 0x2d0], 0xe
jle 0x1001d542
mov dword [ebp - 0x2d0], 1
mov al, byte [esi]
mov byte [ebp - 0x284], al
test al, al
je 0x1001d5ad
lea ecx, [ebp - 0x284]
sub ecx, esi
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [esi + ecx], al
test al, al
jne 0x1001d556
lea eax, [ebp - 0x284]
push eax
push dword [ebp - 0x2d4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret
mov al, byte [esi]
mov byte [ebp - 0x284], al
test al, al
je 0x1001d5ad
lea ecx, [ebp - 0x284]
sub ecx, esi
nop dword [eax + eax]
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [esi + ecx], al
test al, al
jne 0x1001d5a0
lea eax, [ebp - 0x284]
push eax
push dword [ebp - 0x2d4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001e319
mov esp, ebp
pop ebp
ret