Function at 0x1000f037
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [ebp + 0xc]
push ebx
lea ecx, [eax + 0x26d]
push esi
push edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], ecx
cmp eax, ecx
ja 0x1000f4ac
adc byte [ecx + 0x3b24244c], cl
ror dword [edi], 0x87
pop es
add eax, 0x758b0000
adc byte [ebx + 0x5d8b087d], cl
adc al, 0x8b
dec dword [ebx + 0x3d102444]
xor esp, dword [eax]
add byte [eax], al
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
mov edi, edi
mov eax, dword [esp + 0x10]
cmp eax, 0x2033
ja 0x1000f1a9
je 0x1000f0d4
cmp eax, 0x822
ja 0x1000f06b
je 0x1000f042
add eax, 0xfffff802
cmp eax, 0x1b
ja case.0x1000efe7.2047
movzx eax, byte [eax + 0x1000f57c]
jmp dword [eax*4 + 0x1000f568]
jne 0x1000ef98
mov cl, 0x2b
mov dh, 0x68
add byte [ecx], al
add byte [eax], al
push 8
call fcn.1001c8c0
movzx ecx, word [ebx]
push ecx
push 0x108
call fcn.1001c8c0
add esp, 0x10
jmp case.0x1000efe7.2047
add byte [ebx - 0x2f16ef3c], al
add al, 0
add byte [eax], ch
push 0x200
push 0x104
call fcn.1001c8c0
movzx edx, word [ebx]
push 0x200
push 0x104
call fcn.1001c8c0
movzx edx, word [ebx]
push edx
push 0xa
call fcn.1001c8c0
add esp, 0x10
jmp case.0x1000efe7.2047
mov dword [0x100310ac], edi
jmp case.0x1000efe7.2047
jbe 0x1000f00c
add al, byte [0xc1038b63]
loopne 0x1000f055
mov dword [0x100310b0], eax
mov ecx, dword [esi]
push ecx
push 0x52c19
mov ecx, 0x100310a8
sbb dword [eax + 0x10a8b900], ebp
add edx, dword [eax]
call fcn.1000dbf0
add esp, 8
jmp case.0x1000efe7.2047
sub eax, 0x82b
je 0x1000f0b9
sub eax, 9
je 0x1000f4ac
sub eax, 0x17f6
jne case.0x1000efe7.2047
test ebx, ebx
jne 0x1000f0a1
mov eax, 0x535a
cmp eax, eax
je 0x1000f505
add eax, 0x19
cmp eax, 0x535a
jbe 0x1000f091
mov edx, dword [section..data]
test edx, edx
je case.0x1000efe7.2047
call fcn.100126b0
jmp case.0x1000efe7.2047
cmpsd dword [esi], dword es:[edi]
xchg eax, eax
inc esp
cmp ch, byte [eax - 0x58]
adc byte [ebx], al
adc al, ch
test al, 0xb3
add dword [eax], eax
add esp, 4
mov dword [esp + 0xc], eax
jmp case.0x1000efe7.2047
mov eax, 0x66bd
mov dword [esp + 0x18], eax
sub eax, 0x66bd
je 0x1000f17e
sub eax, 0x13
je 0x1000f15b
sub eax, 0x13
jne 0x1000f18e
cmp byte [esp + 0x20], al
je 0x1000f142
mov ecx, 0x22a6
mov dword [esp + 0x14], ecx
mov eax, ecx
sub eax, 0x22a6
je 0x1000f119
sub eax, 0x16
je 0x1000f4ac
jmp 0x1000f131
mov eax, dword [edi]
mov ecx, dword [esi]
push eax
push ecx
mov eax, ebx
call fcn.1000dc30
mov ecx, dword [esp + 0x1c]
add esp, 8
mov dword [esp + 0xc], eax
add ecx, 0x16
mov dword [esp + 0x14], ecx
cmp ecx, 0x22bc
jbe 0x1000f105
jmp 0x1000f18e
mov eax, 0x7d24
cmp eax, eax
je 0x1000f50e
add eax, 0x63
cmp eax, 0x7d24
jbe 0x1000f149
jmp 0x1000f18e
push 8
lea edx, [esp + 0x2c]
push 0
push edx
call fcn.1002b7d0
mov ecx, dword [esp + 0x28]
add esp, 0xc
lea eax, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_VarCyFromR4]
jmp 0x1000f18e
mov dword [esp + 0x1c], 0x2710
mov dword [esp + 0x20], 1
mov eax, dword [esp + 0x18]
add eax, 0x13
mov dword [esp + 0x18], eax
cmp eax, 0x66e3
jbe 0x1000f0dd
jmp case.0x1000efe7.2047
cmp eax, 0x5a95
ja 0x1000f3a3
je 0x1000f354
cmp eax, 0x204e
ja 0x1000f334
je 0x1000f31b
sub eax, 0x203c
je 0x1000f206
sub eax, 9
jne case.0x1000efe7.2047
cmp dword [edi], eax
je case.0x1000efe7.2047
movzx edx, byte [ebx]
mov eax, dword [esi]
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x10031578]
inc ebx
mov dword [esi], eax
dec dword [edi]
jne 0x1000f1e3
jmp case.0x1000efe7.2047
mov eax, dword [esi]
not eax
mov dword [esi], eax
cmp dword [edi], 8
jb case.0x1000efe7.2047
jmp 0x1000f220
mov edx, 0x2ccb
cmp edx, edx
jne 0x1000f2fe
movzx eax, byte [ebx]
mov ecx, dword [esi]
xor eax, ecx
and eax, 0xff
mov eax, dword [eax*4 + 0x10031578]
shr ecx, 8
xor eax, ecx
mov dword [esi], eax
movzx ecx, byte [ebx + 1]
xor ecx, eax
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x10031578]
shr eax, 8
xor ecx, eax
mov dword [esi], ecx
movzx eax, byte [ebx + 2]
xor eax, ecx
and eax, 0xff
mov eax, dword [eax*4 + 0x10031578]
shr ecx, 8
xor eax, ecx
mov dword [esi], eax
movzx ecx, byte [ebx + 3]
xor ecx, eax
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x10031578]
shr eax, 8
xor ecx, eax
mov dword [esi], ecx
movzx eax, byte [ebx + 4]
xor eax, ecx
and eax, 0xff
mov eax, dword [eax*4 + 0x10031578]
shr ecx, 8
xor eax, ecx
mov dword [esi], eax
movzx ecx, byte [ebx + 5]
xor ecx, eax
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x10031578]
shr eax, 8
xor ecx, eax
mov dword [esi], ecx
movzx eax, byte [ebx + 6]
xor eax, ecx
and eax, 0xff
mov eax, dword [eax*4 + 0x10031578]
shr ecx, 8
xor eax, ecx
mov dword [esi], eax
movzx ecx, byte [ebx + 7]
xor ecx, eax
and ecx, 0xff
shr eax, 8
xor eax, dword [ecx*4 + 0x10031578]
add ebx, 8
mov dword [esi], eax
add dword [edi], 0xfffffff8
add edx, 0x4d
cmp edx, 0x2ccb
jbe 0x1000f227
cmp dword [edi], 8
jae 0x1000f220
jmp case.0x1000efe7.2047
mov eax, 0x4f6b
cmp eax, eax
je 0x1000f525
add eax, 0x57
cmp eax, 0x4f6b
jbe 0x1000f322
jmp 0x1000f33f
cmp eax, 0x5a8c
jne case.0x1000efe7.2047
popfd
in eax, 0x38
mov word [eax + 0x346c6], ss
mov dword [esi + 0x34], 0xffffffff
jmp case.0x1000efe7.2047
mov edx, dword [ebx]
push edx
push esi
call fcn.10004410
add esp, 8
test eax, eax
je case.0x1000efe7.2047
mov ecx, 0x23df
lea ecx, [ecx]
mov eax, ecx
sub eax, 0x23df
je 0x1000f38e
sub eax, 0xd
jne 0x1000f393
mov word [esi], fs
les edi, [ebx]
pop ebp
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [esp + 0xc], 4
add ecx, 0xd
cmp ecx, 0x23ec
jbe 0x1000f370
jmp case.0x1000efe7.2047
sub eax, 0x5a9e
je 0x1000f400
sub eax, 9
je 0x1000f3c6
sub eax, 0x1afe
jne case.0x1000efe7.2047
mov eax, esi
call fcn.10021df0
jmp case.0x1000efe7.2047
sub dword [edx], ebp
add eax, 0x2eb8cdfd
add eax, dword [eax]
add byte [ebx], bh
ror byte [edi], 0x84
pop eax
add dword [eax], eax
add byte [ebx + 0x2e3d45c0], al
add eax, dword [eax]
add byte [esi - 0x10], dh
cmp dword [0x100310d0], 0
jne 0x1000f3ee
shl dword [esi], 9
push 0x100310a8
call fcn.10021d80
add esp, 4
jmp case.0x1000efe7.2047
lea ecx, [esi + 0x236]
call fcn.10021da0
mov ecx, 0xaa55
cmp ax, cx
je 0x1000f42c
mov eax, 0x2fe4
cmp eax, eax
je 0x1000f545
add eax, 4
cmp eax, 0x2fe4
jbe 0x1000f41c
mov al, byte [esi + 0x38]
cmp al, 0xe9
je 0x1000f445
cmp al, 0xeb
jne case.0x1000efe7.2047
cmp byte [esi + 0x3a], 0x90
jne case.0x1000efe7.2047
mov eax, 0x5356
mov dword [esp + 0x18], eax
cmp eax, eax
jne 0x1000f4cc
push esp
ret
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
add eax, 0x25
mov dword [esp + 0x18], eax
cmp eax, 0x5356
jbe 0x1000f450
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x10]
add eax, 9
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x24]
jbe 0x1000efb0
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [edi]
mov eax, dword [esi]
push edx
push eax
mov eax, ebx
call fcn.10004540
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
not eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [esp + 0xc], 3
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret