Function at 0x1001fdb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [ebp + 0x10]
push ebx
lea edx, [eax + 0x62c]
push esi
mov ecx, eax
push edi
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], edx
cmp eax, edx
ja 0x100200d7
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
jmp 0x1001fde0
cmp ecx, 0x3509
ja 0x1001ff93
je 0x1001fe54
mov eax, ecx
sub eax, 0x341c
je 0x1001fe2c
sub eax, 0x4f
je 0x1001fe10
sub eax, 0x4f
jne 0x100200c5
mov eax, dword [esi]
not eax
mov dword [esi], eax
jmp 0x100200c5
mov eax, 0x6e4f
cmp eax, eax
je 0x100200e1
add eax, 0x3c
cmp eax, 0x6e4f
jbe 0x1001fe17
jmp 0x100200c5
test edi, edi
je 0x1001ffb5
mov ecx, dword [0x10137950]
test ecx, ecx
je 0x100200c5
push 0x669f
call fcn.10011620
add esp, 4
jmp 0x100200c5
mov edx, dword [ebp + 0x14]
cmp dword [edx], 8
jb 0x1001ff63
mov ecx, 0x5373
cmp ecx, 0x5433
ja 0x1001fed2
je 0x1001feb8
mov eax, ecx
sub eax, 0x5373
je 0x1001feb8
sub eax, 0x60
jne 0x1001ff4b
movzx ebx, byte [edi]
mov eax, dword [esi]
xor ebx, eax
and ebx, 0xff
shr eax, 8
xor eax, dword [ebx*4 + 0x10137db8]
mov dword [esi], eax
movzx ebx, byte [edi + 1]
xor ebx, eax
and ebx, 0xff
shr eax, 8
xor eax, dword [ebx*4 + 0x10137db8]
add edi, 2
jmp 0x1001ff49
movzx ebx, byte [edi]
mov eax, dword [esi]
xor ebx, eax
and ebx, 0xff
shr eax, 8
xor eax, dword [ebx*4 + 0x10137db8]
inc edi
jmp 0x1001ff49
mov eax, ecx
sub eax, 0x5493
je 0x1001feff
sub eax, 0x60
jne 0x1001ff4b
movzx ebx, byte [edi]
mov eax, dword [esi]
xor ebx, eax
and ebx, 0xff
shr eax, 8
xor eax, dword [ebx*4 + 0x10137db8]
inc edi
mov dword [esi], eax
add dword [edx], 0xfffffff8
jmp 0x1001ff4b
movzx ebx, byte [edi]
mov eax, dword [esi]
xor ebx, eax
and ebx, 0xff
shr eax, 8
xor eax, dword [ebx*4 + 0x10137db8]
mov dword [esi], eax
movzx ebx, byte [edi + 1]
xor ebx, eax
and ebx, 0xff
shr eax, 8
xor eax, dword [ebx*4 + 0x10137db8]
mov dword [esi], eax
movzx ebx, byte [edi + 2]
xor ebx, eax
and ebx, 0xff
shr eax, 8
xor eax, dword [ebx*4 + 0x10137db8]
add edi, 3
mov dword [esi], eax
add ecx, 0x60
cmp ecx, 0x54f3
jbe 0x1001fe65
cmp dword [edx], 8
jae 0x1001fe60
cmp dword [edx], 0
je 0x100200c5
lea esp, [esp]
movzx ecx, byte [edi]
mov eax, dword [esi]
xor ecx, eax
and ecx, 0xff
shr eax, 8
xor eax, dword [ecx*4 + 0x10137db8]
inc edi
mov dword [esi], eax
dec dword [edx]
jne 0x1001ff70
jmp 0x100200c5
mov eax, ecx
sub eax, 0x3558
je 0x10020117
sub eax, 0x187c
je 0x1001ffbe
sub eax, 0x4f
jne 0x100200c5
cmp byte [esi + 0x12], bh
adc edx, dword [ecx + 0x5f]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmpsb byte [esi], byte es:[edi]
les ebx, [edx - 0x97a9281]
je 0x1002010b
test edi, edi
je 0x1002010b
push 0
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
test eax, eax
jne 0x100200c5
mov ebx, 0x6902
mov dword [ebp + 0x10], ebx
lea esp, [esp]
mov eax, ebx
sub eax, 0x6902
je 0x1002001e
sub eax, 6
jne 0x100200b3
sub dword [0x8de69e56], 0x6852d055
movd mm0, dword [eax]
add byte [eax - 0x18], dl
dec edx
pop dword [eax]
add byte [ebx - 0x6a16f33c], al
add byte [eax], al
add bh, dl
xlatb
in al, dx
add ch, byte [edi + ecx + 0x68]
das
sub eax, 0x458d0000
rcl byte [eax - 0x73]
dec esi
add al, 0x51
call int.1002aa80
add esp, 0xc
cmp dword [esi], 0
jne 0x100200b3
mov ebx, 0x4f1a
mov eax, ebx
sub eax, 0x4f1a
je 0x1002007a
sub eax, 0x36
je 0x10020071
sub eax, 0x36
jne 0x1002009f
mov cl, 0x4b
das
out dx, eax
xor eax, 0x52f8558d
push 0x7096
push eax
mov dword [ebp - 8], eax
call fcn.10013e90
add esp, 0xc
jmp 0x1002009f
inc ebx
cmp ch, byte [ecx]
xchg edi, eax
call edi
jmp 0x1002009f
mov al, 0xc2
int1
dec esp
or al, 0x8d
inc ebp
loopne 0x100200d3
lea ecx, [ebp - 0x30]
push ecx
lea edx, [ebp - 0xc]
push 0x5027
push edx
mov dword [ebp - 0xc], 0x1001f780
call fcn.100137d0
add esp, 0x10
add ebx, 0x36
cmp ebx, 0x4f86
jbe 0x10020042
mov ebx, dword [ebp + 0x10]
mov dword [esi], 1
add ebx, 6
mov dword [ebp + 0x10], ebx
cmp ebx, 0x6908
jbe 0x1001fff0
mov ecx, dword [ebp - 4]
add ecx, 0x4f
mov dword [ebp - 4], ecx
cmp ecx, dword [ebp - 0x10]
jbe 0x1001fde0
or ebp, edi
invalid
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov edx, dword [esi]
push 0x6d09
lea eax, [ebp + 0x10]
push eax
mov dword [ebp + 0x10], ecx
lea ecx, [ebp - 0x14]
push edi
push ecx
mov dword [ebp - 0x14], edx
call fcn.1001e020
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x16
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
pop edi
pop esi
not eax
pop ebx
mov esp, ebp
pop ebp
ret