Function at 0x10217b01
Capabilities:
Encode data using xor

Disassembly:
push edx
mov edx, dword [esp]
push edx
mov edx, dword [esp]
mov dword [esp + 4], edx
push esi
mov esi, dword [esp + 4]
push esi
mov esi, dword [esp + 4]
mov dword [esp + 8], esi
pop edx
pop esi
lea esp, [esp - 4]
push ebp
mov ebp, dword [esp]
mov dword [esp + 0xc], ebp
pop ebp
lea esp, [esp + 4]
push esi
mov esi, dword [esp + 4]
push edx
call 0x10217958
jp 0x102179b3
lea edx, [edx - 0xefd4]
jmp edx
loop 0x10217a0f
pop edx
pushfd
xor esi, esi
add esi, dword [esp + 4]
add esi, 0xd3f13d7c
add esi, 0x2c0ec284
popfd
mov dword [esi], ecx
pop ebp
pop esi
pop ecx
lea esp, [esp - 4]
xchg dword [esp + 4], ecx
lea esp, [esp + 8]
pushfd
push eax
mov eax, dword [esp]
push eax
mov dword [esp + 4], 0x475b9940
pop eax
lea esp, [esp - 0xc]
call fcn.10206c42
jno 0x10217a60
pop ecx
lea esp, [esp - 4]
push esi
lea esp, [esp - 8]
mov dword [esp + 0xc], ecx
lea esp, [esp + 8]
pop esi
mov ecx, dword [esp + 0x14]
mov dword [esp], ecx
pop dword [esp + 0x10]
push 0x39e7c753
pushfd
lea esp, [esp - 0xa]
mov esi, dword [esp + 0x12]
lea esp, [esp + 0x16]
mov eax, dword [esp]
lea esp, [esp + 4]
lea esp, [esp - 4]
mov edx, dword [esp + 4]
push edi
lea esp, [esp + 0xc]
call fcn.10213d3d
jecxz 0x10217ad4
pop ebx
invalid
pop ebp
pop ebx
pushfd
push ebp
mov ebp, dword [esp]
xor dword [esp], ebp
mov ebp, dword [esp + 8]
add dword [esp], ebp
push edx
mov dword [esp], 0x4578dc65
pushfd
xor edx, edx
add edx, dword [esp + 4]
push eax
call 0x10217aa6
jns 0x10217aff
lea eax, [eax + 0x1e7f5]
call eax
jno 0x10217b0b
pop edx
mov edx, dword [esp + 0x18]
lea esp, [esp + 0x1c]
popfd
lea esp, [esp - 4]
pushfd
mov dword [esp + 4], edx
popfd
pushfd
xor edx, edx
add edx, dword [esp + 4]
popfd
mov edx, dword [edx]
mov dword [esp], edx
mov edx, dword [esp]
mov dword [esp + 8], edx
pushfd
mov dword [esp], eax
mov eax, dword [esp + 4]
push ebp
mov dword [esp], eax
push edx
call 0x10217b01
jle 0x10217b5c
add byte [esi + 0x5a], bh
lea edx, [edx + 0xc42a]
call edx
jl 0x10217b64
pop eax
mov ebp, dword [esp + 8]
push ebp
mov ebp, dword [esp + 4]
mov dword [esp + 0xc], ebp
pop ebx
pop ebp
pop eax
pushfd
push ebx
mov ebx, dword [esp]
xor dword [esp], ebx
mov ebx, dword [esp + 8]
add dword [esp], ebx
push ebp
mov dword [esp], 0x67a2805c
pushfd
xor ebp, ebp
add ebp, dword [esp + 4]
add ebp, 0x32794e3b
add ebp, 0x35ead3b5
pushfd
call 0x10217b5c
jns 0x10217ade
add dword [esp], 0xad4e
add al, 0x24
dec esi
lodsd eax, dword [esi]
add byte [eax], al
ret
jnp 0x10217bc3
lea esp, [esp - 4]
xchg dword [esp + 4], eax
lea esp, [esp + 8]
push ebp
mov ebp, dword [esp]
push ebp
mov dword [esp + 4], 0x2bbb5ba5
pop ebp
pushfd
push eax
mov eax, dword [esp]
mov dword [esp + 8], eax
pop eax
popfd
push eax
mov dword [esp], 0x2bf36419
pushfd
xor eax, eax
add eax, dword [esp + 4]
call fcn.10220aec
ja 0x10217b40
invalid
and al, 4
pushfd
xor eax, eax
add eax, dword [esp + 4]
push eax
mov dword [esp], 0x94d7acce
and al, 0xce
lodsb al, byte [esi]
xlatb
xchg esp, eax
add dword [esp], 0x2e7edcfd
add eax, dword [esp]
lea esp, [esp + 4]
push 0x1be04045
add dword [esp], 0x3f24a8c7
add eax, dword [esp]
lea esp, [esp + 4]
popfd
mov dword [esp], eax
mov eax, dword [esp]
add dword [esp + 4], eax
push eax
xchg dword [esp + 4], eax
lea esp, [esp + 8]
mov edx, dword [esp]
call fcn.10006eb2
jb 0x10217bb3
mov dword [ebx], 1
mov ebp, dword [esp + 8]
mov dword [esp], ebp
pop dword [esp + 4]
pop ebx
pop ebp
jmp 0x1022ef18
push eax
mov eax, dword [esp]
push eax
mov eax, dword [esp]
mov dword [esp + 4], eax
push ebp
mov ebp, dword [esp + 4]
push ebp
mov ebp, dword [esp + 4]
mov dword [esp + 8], ebp
pop eax
pop ebp
pushfd
push eax
mov eax, dword [esp]
xor dword [esp], eax
mov eax, dword [esp + 8]
add dword [esp], eax
call fcn.1021e4de
ja 0x1022ef20
test byte [esp + ecx], ah
add byte [eax], al
add al, al
push ebp
mov ebp, 0x24a48d5c
cld
invalid