Function at 0x22f4524
Capabilities:
Encode data using xor

Disassembly:
jmp 0x21d3a14
inc esp
mov edi, dword [edi + ecx*2 + 0x1dbc9c3e]
ror byte [esp + ecx*8 + 0x76f2710f], 0x24
inc cx
sub esi, 0xd349569d
out 0x48, al
lea edi, [edi + ecx*2 + 0x1dbc9c3e]
inc ebp
xor edi, esp
inc ecx
pop esi
inc bx
inc ecx
bswap edi
inc eax
movsx eax, ch
inc ecx
not edi
cwde
inc ecx
rol edi, 1
inc ecx
dec edi
inc ecx
not edi
inc ecx
inc edi
dec esp
sub edx, ebx
inc ecx
rol edi, 1
dec eax
shr ebx, 0xb9
inc esi
lea edi, [ecx + edi + 0x59fe3424]
mul cl
neg eax
dec eax
imul ebx
inc ecx
rol edi, 2
cwd
jmp 0x22f45de
inc edx
div dword [esp + ecx - 0x79]
neg ecx
dec edx
ror dword [esp + esi*2 - 0x434038fc], 0x4d
dec edi
lea edi, [ecx + edx*8 - 0x5c5c79]
push edx
rol ecx, 2
sub ecx, ebx
xor ecx, 0x9280779c
dec eax
ror ebx, 0xb9
dec eax
cwde
inc ebp
add bl, dl
bswap ecx
inc edx
cmovns eax, dword [esp + esi - 0x21a01c6f]
rol ecx, 3
dec eax
btr edx, 0xbf
inc ecx
bt ecx, 1
sal ebx, 0x1f
dec esi
mov dword [esp + esi - 0x21a01c72], esp
inc ecx
shr dh, 0xc2
dec edx
mov dword [esp + esi - 0x21a01c18], 0x321e9924
inc edx
xor dword [esp + esi - 0x21a01c10], ecx
inc ecx
sar esi, 0x3e
dec esi
mov esp, dword [esp + esi + 0x10]
inc sp
xadd eax, edx
dec eax
arpl cx, cx
inc esp
cmovae ebx, ebx
jne 0x231b9ec
dec edx
lea ebp, [ecx + ebx*4 - 0x39f4f9ea]
or cl, cl
inc esp
mov ebx, dword [ecx + edi - 0xc909]
inc ebp
xor ebx, esp
inc esp
movzx edx, bp
inc ecx
neg ebx
inc esp
movzx eax, cl
inc ecx
not ebx
inc ecx
neg ebx
mov edx, ecx
inc esp
movzx ecx, dx
inc ecx
ror cl, 0xa3
inc ecx
xor ebx, 0xf5a0cf06
inc ecx
and edx, eax
shl bp, 0xc5
inc esp
mov esi, ebp
inc ecx
push esp
inc esp
and cl, cl
inc esp
xor dword [esp + ecx - 0xc909], ebx
movsx eax, dx
inc ecx
pop esp
dec ax
call fcn.0149513f
inc ecx
mov esi, 0x21a01c82
dec ecx
lea edi, [esi + edi - 0x21a01c83]
inc ebp
movzx ecx, dh
inc ecx
movsx ebp, cx
inc esi
movzx edi, byte [edi + esi*2 - 0x43403904]
inc ebp
movsx ebx, cl
jmp 0x23201cd
lea esp, [esp + 4]
ret
movzx edx, cx
bt ecx, 0x90
bswap eax
adc dx, 0x3408
push edx
sbb eax, 0xe98233be
sar dword [esp + edx*4 - 0x39d60], 0x2b
jne 0x22fbd82
inc cx
sal edi, 0x4a
not eax
bts ebx, 0xb1
dec eax
xor ebp, ebp
dec ebp
and edx, eax
inc eax
inc esp
movsx esi, bx
not dx
add bl, 0xb0
inc ecx
push esp
jg 0x20f600d
dec ecx
not edx
inc edx
xor dword [esp + edx*2 + 0x144], eax
inc ecx
pop esp
dec esp
lea esi, [ebx*4 + 0x59a481b3]
dec eax
arpl ax, ax
inc ebp
mov ecx, edi
dec eax
add esi, eax
call int.021e1cbc
not eax
pop eax
push 0x3808a923
jmp 0x14eb99a
dec esi
lea ebp, [ecx + ebp + 0xede4e25]
dec esp
mov dword [esp + ecx + 0xede4e21], esi
inc bp
bt esi, eax
jb 0x14f9753
call fcn.0148a0df
dec eax
sub edi, 4
inc ecx
mov edx, 0xfb0154a1
dec edx
lea eax, [edx*4 + 0xb905a14]
movzx ebx, al
mov eax, dword [edi + ebx - 0x98]
inc ebp
movzx edi, dl
inc ecx
movsx ebp, bh
sar bl, 0x43
inc ecx
xor eax, esp
inc eax
inc ecx
movzx edx, di
neg eax
inc esp
mov eax, ebx
jmp 0x22ef433
bswap eax
xor eax, 0x653fe12f
dec edx
shr dx, 0x84
sar dl, 0x45
xor ebx, eax
xchg dword [esp + edx - 0xe03], ecx
btr ecx, ecx
jb 0x22577d3
adc edi, eax
push edx
mov ecx, dword [esi + ecx*4 - 0x70]
mov eax, edx
btr dx, 0
xor dl, ah
mov edx, dword [ecx + edx - 0xe0c]
mov ecx, eax
not byte [esp + eax*2 - 0x1c01]
shl byte [esp + eax - 0xe03], cl
mov dword [esi + eax - 0xe03], edx
mov dword [esp + eax - 0xe03], edi
ret 4
inc ecx
sar eax, 0xe3
dec eax
adc esi, ecx
shr eax, 0xfd
dec edx
mov dword [esp + esi*2 + 0x10], 0x961a0095
pop ebp
pop ebx
pop eax
jnp fcn.014ea78c
mov ecx, 0x4fb3e197
bswap ecx
sub ebp, 4
mov eax, dword [ebp]
xor eax, ebx
jmp 0x22429ea
inc ebp
xor bh, ah
inc ecx
dec bh
inc sp
btr ebp, ebx
sar bp, 0x6f
inc ecx
movsx ecx, dh
inc ecx
ror bh, 1
dec ebp
lea edx, [esi - 0x53c98671]
inc ecx
push esi
inc ecx
not esi
inc ecx
not bh
inc ecx
inc bh
inc esp
movsx eax, bp
dec edx
lea ebx, [ebx*8 + 0x9347a2e]
push ebp
inc ebp
xor ah, bh
dec esi
lea edi, [esp + edi + 0x10]
inc dx
sal dword [esp + ecx - 0x7d], 0xee
dec ebx
mov ebx, dword [edi + ecx*8 - 0x410]
dec edi
lea ebp, [ebp + ecx*2 - 0x10c]
dec esi
xadd dword [esp + ecx*2 - 0xfc], esi
dec ebx
mov dword [ebp + ecx*4 - 0x208], ebx
dec ebx
lea eax, [ecx + eax*8 + 0x1e29590d]
inc edx
movzx ebx, word [esp + esi - 0x21a01c7c]
dec ecx
lea edi, [ecx + edi - 0x86]
inc edx
movzx edx, word [esp + esi - 0x21a01c76]
inc dx
ror dword [esp + ecx - 0x75], 0x48
inc edx
adc dword [esp + ecx - 0x76], ecx
inc edx
mov ecx, dword [edi + esi*2 - 0x43403904]
not ebx
inc ecx
xor ecx, esp
inc cx
and ebp, ebx
cwd
inc cx
dec edx
xor ecx, 0xc8cbe88
inc esp
and bl, al
inc edx
add byte [esp + esi*2 - 0x43403901], 0x95
neg ecx
sub ecx, ebx
ror ecx, 3
inc ecx
sar bl, 0x61
dec edx
mul dword [esp + esi*2 - 0x434038fe]
adc ecx, ebp
inc ecx
imul bl
jae 0x20eefb1