Function at 0x1000f3df
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 8]
push ebx
lea ecx, [eax + 0x8fc]
push esi
push edi
mov dword [ebp - 4], eax
mov dword [ebp - 0x20], ecx
cmp eax, ecx
ja 0x1000f9a5
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x18]
lea esp, [esp]
cmp dword [ebp - 4], 0x567d
mov edx, dword [ebp + 8]
ja 0x1000f604
je 0x1000f5c9
cmp dword [ebp - 4], 0x47a7
ja 0x1000f57d
je 0x1000f500
mov eax, dword [ebp - 4]
sub eax, 0x298
je 0x1000f390
sub eax, 0x4457
je 0x1000f385
sub eax, 0x5c
jne 0x1000f995
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
je 0x1000f37b
mov eax, dword [ebp + 0x10]
mov byte [edx], 0x2d
mov ebx, dword [eax]
inc edx
neg ebx
mov dword [ebp + 8], edx
mov dword [eax], ebx
mov ebx, edx
mov dword [ebp - 0x18], ebx
jmp 0x1000f995
mov edx, dword [ebp + 0xc]
mov dword [ebp + 8], edx
jmp 0x1000f995
or edi, esi
sub esi, dword [ebp + ecx*8 + 0x107d83]
je 0x1000f995
mov eax, 0x5d65
mov dword [ebp - 0x14], eax
jmp 0x1000f3b0
cmp eax, 0x5e6d
ja 0x1000f481
je 0x1000f463
add eax, 0xffffa29b
cmp eax, 0xc6
ja case.0x1000f3d8.23910
movzx eax, byte [eax + 0x1000f9c4]
jmp dword [eax*4 + 0x1000f9b0]
adc dword [eax - 0x30], edi
mov ebp, 0x10558b6c
mov eax, dword [edx]
cmp dword [eax + 0x30], edx
jne case.0x1000f3d8.23910
mov edx, dword [ebp - 8]
mov dword [eax + 0x30], edx
jmp case.0x1000f3d8.23910
mov eax, 0x66c5b9aa
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
jmp case.0x1000f3d8.23910
or al, 0xc3
add dl, byte [ecx - 0x74efba75]
adc byte [ecx], bh
inc edx
xor al, 0x75
or dword [ebx + 0x4289f845], ecx
xor al, 0x8b
inc ebp
adc byte [ebx + 0x55891450], cl
hlt
push edi
fcmovu st(0), st(0)
push ds
xor eax, 0x85f4458b
sal byte [esi + eax - 0x75], 0x55
clc
mov dword [eax + 8], edx
cmp dword [ebp - 8], 0
je case.0x1000f3d8.23910
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov dword [edx + 0x10], eax
jmp case.0x1000f3d8.23910
jbe 0x1000f461
add byte [eax], al
cli
sub eax, 0x83a858a1
jge 0x1000f45f
add byte [ebx + 0x508b1045], cl
or al, 0x89
push ebp
clc
je case.0x1000f3d8.23910
mov eax, edx
mov edx, dword [ebp - 0xc]
mov dword [edx + 0xc], eax
jmp case.0x1000f3d8.23910
sub eax, 0x5eaf
je 0x1000f4c7
sub eax, 0x42
je 0x1000f4af
sub eax, 0x42
jne case.0x1000f3d8.23910
sub ebp, dword ss:[ebp + 0x55]
and byte [ebx - 0x3697efbb], cl
pop ecx
add byte [eax], al
push eax
push 0
call fcn.1000d660
mov ecx, dword [ebp + 0x18]
add esp, 0xc
jmp case.0x1000f3d8.23910
cdq
dec edi
in eax, 0x55
sbb dword [ebx + 0x428b1055], ecx
add al, 0x39
push eax
or al, 0x75
sbb cl, byte [ebx + 0x5089f855]
or al, 0xeb
adc al, dl
xor al, 0xd6
xor eax, dword [esi - 0x7a07ba75]
sal byte [esi + eax - 0x75], 0x55
hlt
ret 0xd634
mov eax, dword [ebp - 0x14]
add eax, 0x42
mov dword [ebp - 0x14], eax
cmp eax, 0x5f33
jbe 0x1000f3b0
jmp 0x1000f995
mov dword [ebp - 0x14], 0x3254
jmp 0x1000f510
mov eax, dword [ebp - 0x14]
sub eax, 0x3254
je 0x1000f551
sub eax, 0x2c
je 0x1000f541
sub eax, 0x2c
jne 0x1000f560
cmp dword [ebp - 0x10], 9
mov al, byte [ebp - 0x10]
jbe 0x1000f537
add al, 0x57
mov byte [edx], al
inc edx
mov dword [ebp + 8], edx
jmp 0x1000f560
add al, 0x30
mov byte [edx], al
inc edx
mov dword [ebp + 8], edx
jmp 0x1000f560
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
xor edx, edx
div dword [ecx]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
jmp 0x1000f55d
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
xor edx, edx
div dword [ecx]
mov dword [ebp - 0x10], edx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
add eax, 0x2c
mov dword [ebp - 0x14], eax
cmp eax, 0x32ac
jbe 0x1000f510
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0
ja 0x1000f500
jmp 0x1000f995
cmp dword [ebp - 4], 0x4803
je 0x1000f929
cmp dword [ebp - 4], 0x5621
jne 0x1000f995
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov edi, dword [ebp + 8]
mov esi, eax
mov edx, eax
shl esi, 0x10
and edx, 0xff00
add esi, edx
shr eax, 8
and eax, 0xff00
shl esi, 8
add esi, eax
mov eax, dword [ebp + 0x10]
movzx edx, byte [eax + 3]
add esi, edx
jmp 0x1000f995
cmp dword [ecx], 0
not esi
je 0x1000f995
test byte [ebp + 0xc], 3
je 0x1000f995
mov edx, dword [ebp + 0xc]
movzx edx, byte [edx]
inc dword [ebp + 0xc]
mov eax, esi
shr eax, 0x18
xor eax, edx
shl esi, 8
xor esi, dword [eax*4 + 0x10138db8]
dec dword [ecx]
cmp dword [ecx], 0
jne 0x1000f5d4
jmp 0x1000f995
mov eax, dword [ebp - 4]
cmp eax, 0x5791
ja 0x1000f8ae
cmp eax, 0x5791
je 0x1000f8a6
sub eax, 0x56d9
je 0x1000f89b
sub eax, 0x5c
jne 0x1000f995
cmp dword [ecx], 0x20
jb 0x1000f825
lea ebx, [ebx]
mov eax, 0x63c9
mov dword [ebp - 0x14], eax
jmp 0x1000f650
cmp eax, 0x64cd
ja 0x1000f764
je 0x1000f75c
add eax, 0xffff9c37
cmp eax, 0xc3
ja case.0x1000f77b.25871
movzx eax, byte [eax + 0x1000fa9c]
jmp dword [eax*4 + 0x1000fa8c]
xor esi, dword [edi + 4]
add edi, 8
mov edx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x101395b8]
mov eax, esi
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x101391b8]
mov eax, esi
shr eax, 0x18
xor edx, dword [eax*4 + 0x101399b8]
and esi, 0xff
xor edx, dword [esi*4 + 0x10138db8]
xor edx, dword [edi]
mov esi, edx
jmp case.0x1000f77b.25871
xor esi, dword [edi + 4]
add edi, 4
mov edx, esi
shr edx, 0x10
mov eax, esi
and edx, 0xff
mov edx, dword [edx*4 + 0x101395b8]
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x101391b8]
mov eax, esi
shr eax, 0x18
xor edx, dword [eax*4 + 0x101399b8]
and esi, 0xff
xor edx, dword [esi*4 + 0x10138db8]
mov esi, edx
jmp case.0x1000f77b.25871
xor esi, dword [edi + 4]
add edi, 4
mov edx, esi
shr edx, 0x10
mov eax, esi
and edx, 0xff
mov edx, dword [edx*4 + 0x101395b8]
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x101391b8]
mov eax, esi
shr eax, 0x18
xor edx, dword [eax*4 + 0x101399b8]
and esi, 0xff
xor edx, dword [esi*4 + 0x10138db8]
mov esi, edx
jmp case.0x1000f77b.25871
add edi, 4
jmp 0x1000f685
add eax, 0xffff9af2
cmp eax, 0xc3
ja case.0x1000f77b.25871
movzx edx, byte [eax + 0x1000fb70]
jmp dword [edx*4 + 0x1000fb60]
mov eax, esi
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x101395b8]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x101391b8]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x101399b8]
and esi, 0xff
xor eax, dword [esi*4 + 0x10138db8]
jmp 0x1000f806
add dword [ecx], 0xffffffe0
jmp case.0x1000f77b.25871
mov eax, esi
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x101395b8]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x101391b8]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x101399b8]
and esi, 0xff
xor eax, dword [esi*4 + 0x10138db8]
add edi, 4
xor eax, dword [edi]
mov esi, eax
mov eax, dword [ebp - 0x14]
add eax, 0x41
mov dword [ebp - 0x14], eax
cmp eax, 0x65d1
jbe 0x1000f650
cmp dword [ecx], 0x20
jae 0x1000f640
cmp dword [ecx], 4
jb 0x1000f893
lea ebx, [ebx]
mov eax, 0x5913
cmp eax, eax
jne 0x1000f884
xor esi, dword [edi + 4]
add edi, 4
mov ecx, esi
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x101395b8]
mov edx, esi
shr edx, 8
and edx, 0xff
xor ecx, dword [edx*4 + 0x101391b8]
mov edx, esi
shr edx, 0x18
xor ecx, dword [edx*4 + 0x101399b8]
and esi, 0xff
xor ecx, dword [esi*4 + 0x10138db8]
mov esi, ecx
mov ecx, dword [ebp + 0x18]
add dword [ecx], 0xfffffffc
add eax, 0x46
cmp eax, 0x5913
jbe 0x1000f837
cmp dword [ecx], 4
jae 0x1000f830
add edi, 4
jmp 0x1000f995
mov edi, dword [ebp + 0xc]
add edi, 0xfffffffc
jmp 0x1000f995
mov dword [ebp + 0xc], edi
jmp 0x1000f995
sub eax, 0x57ed
je 0x1000f972
sub eax, 0x5c
jne 0x1000f995
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 8], 0x92f
lea esp, [esp]
mov eax, dword [ebp + 8]
sub eax, 0x92f
je 0x1000f917
sub eax, 8
je 0x1000f8ed
sub eax, 8
jne 0x1000f919
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
and ecx, 0xff00
mov eax, esi
shl eax, 0x10
add ecx, eax
mov eax, esi
shr eax, 8
and eax, 0xff00
shl ecx, 8
add ecx, eax
mov eax, esi
shr eax, 0x18
add ecx, eax
mov dword [ebp - 0x1c], ecx
jmp 0x1000f919
not esi
mov eax, dword [ebp + 8]
add eax, 8
mov dword [ebp + 8], eax
cmp eax, 0x93f
jbe 0x1000f8d0
mov byte [edx], 0
dec edx
mov dword [ebp + 8], edx
mov ecx, 0x2f74
mov eax, ecx
sub eax, 0x2f74
je 0x1000f94c
sub eax, 0x18
jne 0x1000f95d
dec dword [ebp + 8]
inc ebx
mov dword [ebp - 0x18], ebx
jmp 0x1000f95d
mov edx, dword [ebp + 8]
mov al, byte [edx]
mov dl, byte [ebx]
mov ebx, dword [ebp + 8]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov byte [ebx], al
add ecx, 0x18
cmp ecx, 0x2f8c
jbe 0x1000f935
cmp ebx, dword [ebp + 8]
jb 0x1000f930
mov ecx, dword [ebp + 0x18]
jmp 0x1000f995
cmp dword [ecx], 0
je 0x1000f995
mov edx, dword [ebp + 0xc]
movzx edx, byte [edx]
inc dword [ebp + 0xc]
mov eax, esi
shr eax, 0x18
xor eax, edx
shl esi, 8
xor esi, dword [eax*4 + 0x10138db8]
dec dword [ecx]
jne 0x1000f977
add dword [ebp - 4], 0x5c
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 4], eax
jbe 0x1000f320
mov eax, dword [ebp - 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret