Function at 0x17ae871
Capabilities:
Encode data using xor

Disassembly:
add ebp, 4
push 0x4bb78298
jmp 0x1947ac4
not word [esp]
neg edx
neg word [esp]
or word [esp], 0x41b5
dec edx
call fcn.00ccbce4
mov eax, 0x9a3d6f9d
xor dl, 0x28
pop eax
rol dl, 1
call fcn.014fda49
dec esi
lea esi, [eax*2 + 0x56abf003]
inc cx
xor ecx, 0x4466e91a
imul ebp, edi
not ecx
inc ecx
shr ecx, 0xb3
bswap ecx
inc cx
inc eax
inc sp
btc edx, ecx
inc ecx
push esp
dec edx
mov dword [esp + eax - 0x3b6a1117], ebx
inc edx
xor dword [esp + eax*2 - 0x76d4222e], ecx
call fcn.01632522
adc edi, 6
btc ecx, 0x2e
sbb ecx, 0xd418b5b5
mov word [ecx + edx - 0x2be70a49], ax
shl cl, 0xa2
jb 0x155f2f7
bswap edx
xor eax, ebx
bt edx, 3
movsx ecx, dx
lea eax, [eax + edx - 0x5213267c]
call fcn.0194d02a
jmp 0xcc4e58
lea ecx, [ecx + ecx - 0x515d8d76]
adc edi, 2
btr ecx, 0x11
not dl
call fcn.01776c7d
mov edx, dword [ebp + ecx - 0x2be70a24]
lea ecx, [ecx + ecx*2 - 0x42eb6bdd]
jp 0x1744ca7
sub cl, ch
cbw
xor edx, 0x2838b739
neg edx
sar cl, 0xe1
lea ecx, [ecx*8 + 0x1da436ad]
adc ecx, eax
not edx
dec cl
add cx, ax
xchg cx, ax
xor ebx, edx
inc cx
sets cl
add esi, edx
lea edx, [ecx + eax*4 + 0x49a1c4b5]
bt dx, ax
lea ecx, [eax*2 - 0x7a7268fc]
jmp esi
lea ebp, [ecx + ebp - 0x40c9b28b]
xor edx, ebx
and cx, cx
lea eax, [ecx - 0x45cb4957]
xor edx, 0x32bc460b
sar ecx, 0xe1
neg edx
jmp 0x167e5fe
rol dx, cl
call fcn.018cf74a
sub edi, 4
mov eax, 0x121e201b
push eax
lea ecx, [eax + eax*4 - 0x5c746d5e]
mov ecx, dword [edi + eax*2 - 0x243c4036]
push eax
sub ax, 0x9896
mov edx, 0x8d28942c
xor ecx, ebx
inc ecx
shl dword [esp + eax - 0x121e8783], 0x97
jne 0x188642e
mov eax, 0x4200dd9a
xor edx, ebx
or ax, 0xae84
lea ecx, [eax - 0x5de5ea43]
rol edx, 1
not edx
sub cl, ah
not ecx
neg edx
shr eax, cl
add ax, cx
bts eax, 0xc
bswap edx
bt eax, 0xb
xor ebx, edx
add esi, edx
lea edx, [eax + eax*8 + 0x2b1cd719]
lea edx, [edx - 0x2cf4abde]
movzx dx, byte [edi + eax - 0x8401a96]
mov al, byte [edi + eax*2 - 0x1080352a]
bts ecx, ecx
jae 0x1538696
ror eax, 3
xor eax, 0xff17ddb6
shl cl, 0xa5
neg eax
neg dl
shl edx, 0xf
call fcn.018f859c
not ecx
shl cx, 0x21
bswap edx
xor cx, 0xec8e
bts ecx, 0xaa
lea eax, [ecx*8 - 0x7f609173]
xor ebx, edx
add esi, edx
imul ecx
lea edi, [ecx + edi - 0xecf1]
bswap eax
xor edx, ecx
movzx edx, byte [edi + ecx*4 - 0x3b3c0]
rol cx, 0xcb
neg cl
xor dl, bl
rol dl, 1
call fcn.0182f74b
mov eax, 0xb000cdb4
mov edx, eax
mov eax, dword [ebp]
lea ecx, [edx + edx*4 + 0x2abc8302]
and dx, cx
mov cl, byte [ebp + 4]
dec edx
adc ebp, 2
sal dl, 0x86
sete dl
sar edx, 0xe3
sal eax, cl
mov ecx, 0x7c3594bf
sar cl, 0xa7
add dx, 0x6316
mov dword [ebp + ecx - 0x7c3594ff], eax
or edx, edx
jae 0x1903071
ror byte [esp + 1], 0xe5
mov edx, dword [edi]
xor edx, ebx
bswap edx
ror edx, 3
push 0xc928dc86
mov ecx, dword [esp + 4]
sub edx, 0xcb05ff3d
lea ecx, [ecx + ecx + 0x29a48fbf]
movsx eax, word [esp + ecx - 0x70fb83f9]
bswap edx
xor edx, 0xcbb12431
xchg ah, al
xor ebx, edx
xor dword [esp + ecx - 0x70fb83fa], 0xbcae71a9
pop eax
bts eax, 0xbb
adc esi, edx
add ax, 0x1a37
neg dword [esp + ecx - 0x70fb83fd]
sal ecx, cl
mov edx, ebp
shl cl, 0x66
and byte [esp + 2], 0x36
cwde
sbb ebp, 2
push ecx
push eax
mov word [ebp], dx
rol cl, 0xa5
movsx edx, byte [esp + 7]
dec dword [esp + 7]
pop edx
pop edx
pop edx
jno fcn.016b6b9d
mov dword [esi], eax
call fcn.018d7626
mov ecx, 0x6b2fe827
mov edx, 0x158b0e06
mov eax, dword [edi + edx - 0x158b0e06]
imul ecx, ecx
bt ecx, ecx
mov ecx, dword [edi + edx - 0x158b0e02]
add edx, edx
rol dl, 0xc7
bswap edx
push ebx
movsx ebx, dl
xadd ebx, edx
cpuid
call fcn.01582a07
mov cl, byte [ebp + 4]
push 0x1133503a
adc ebp, 4
shl byte [esp + 2], 0xe6
shrd ax, dx, cl
inc byte [esp]
mov ecx, 0x610df93e
movzx edx, cl
mov word [ecx + ebp - 0x610df93e], ax
inc ecx
movzx eax, dx
mov dword [esp + edx*4 - 0xf8], esi
ret
inc ecx
mov ecx, dword [edi + ecx - 0x561a3b9a]
xor ecx, ebx
mov dword [esp], 0x66a5763d
push 0xf329628a
add ecx, 0x6203c00c
push 0xc717ed2c
call fcn.018a13f9
bt ecx, ecx
mov cx, word [ebp + 4]
mov eax, 0xfb069518
adc ebp, 1
neg eax
shr cx, 1
not eax
rcr edx, cl
movsx ecx, al
lea ecx, [eax - 0x6d62d8ec]
mov dword [ebp], edx
movzx edx, cl
or edx, 0x6200169b
lea edi, [edi + edx - 0x620016bf]
mov eax, dword [edx + edi - 0x620016bb]
jg 0x174668f
not dword [esp + eax - 0x121e8781]
bswap ecx
ror ecx, 3
mul dword [esp + eax*2 - 0x243d0f06]
jb 0x19a98db
xor eax, ebx
push edi
inc ecx
shl ebp, 5
shr dx, 0x68
rol eax, 1
xor eax, 0x981b76b5
neg eax
inc ecx
neg ch
sub dword [esp + edi - 0xccbc], 0xbb2ac68c
rol eax, 1
dec esp
btc esi, ebx
inc esp
movzx eax, bh
dec eax
mov dword [esp + edi*4 - 0x332f0], ebx
xor dword [esp + edi - 0xccbc], eax
inc ecx
shr ch, 7
pop ebx
inc cx
not ebp
inc eax
ror dh, 0x63
dec eax
arpl ax, ax
dec ecx
shr eax, 0x59
inc ecx
inc al
inc ecx
sub esi, eax
dec eax
adc ebp, eax
inc ecx
sar ebp, 0x97
inc bp
mov ebx, dword [edi + edi*2 - 0x19978]
inc ebp
mov esi, ebp
inc ebp
movsx esp, al
inc bp
mov ebp, dword [edi + edi - 0xccba]
inc ebp
movsx ecx, si
inc bp
add esi, esp
inc bp
and ecx, eax
inc edx
mov cl, byte [edi + edi - 0xccb8]
inc ebp
btc esp, eax
dec ecx
shl esi, 0xaf
dec ebp
lea edi, [edi + edi*4 - 0x332ec]
push esi
inc ecx
ror cl, 0x25
inc ecx
shl eax, 0xf3
inc bp
shld ebx, ebp, cl
inc bp
mov dword [edi + edi*4 - 0x332f0], ebx
dec eax
mov dword [esp + edi - 0xccbc], ebp
ret
lea esi, [esi + ecx - 0x7c359503]
or cx, 0x6e23
jge 0x19162c3
mov edx, dword [esi + ecx - 0x7c35feff]
xor edx, ebx
sub edx, 0x62ab2c2b
xor edx, 0x730ed130
movzx eax, cx
inc eax
neg edx
bt eax, 0x92
push ecx
sbb dword [esp + eax*2 - 0x1fe00], 0xb1a11da8
sbb edx, 0xca0bac1a
dec ecx
pop ecx
or cx, ax
bswap edx
btc ecx, 0x3f
and cl, ch
rol eax, 0xdf
xor ebx, edx
add edi, edx
not ax
jmp edi
bswap ecx
pop eax
sub edx, edx
xor ebx, ecx
inc word [esp + eax - 0x590bbe81]
or eax, eax
mul al
add esi, ecx
mov eax, dword [eax + ebp - 0x590b4204]
xor dl, dh
mov ecx, edx
sbb dword [esp + edx*2 + 2], edx
or edx, dword [ebp + edx*8 + 4]
lea ebp, [ebp + ecx*8 + 8]
mov dword es:[ecx + eax], edx
jmp 0x19f74e4
and dword [esp + edx - 0x5941d60e], edx
lea ebp, [ebp + edx - 0x5941d609]
shl edx, 0xb3
bt edx, 0x14
mov byte ss:[eax], cl
pop ecx
pop eax
jmp esi
xor edx, ebx
not dword [esp]
dec edx
inc dword [esp]
xor edx, 0x5081d1ab
jmp 0x1521af0
neg ecx
inc dword [esp + edx*2 - 0x21ac82b2]
xor ebx, ecx
bswap edx
dec edx
bswap eax
add esi, ecx
mov eax, dword [eax + ebp - 0x7bad5ae8]
lea ecx, [edx + edx*2 - 0x23e2a15b]
shl dword [esp + edx - 0x5941d60b], cl
mov cl, byte [ebp + edx - 0x5941d60b]
jbe 0x1945b56
mov eax, 0x4e354081
inc ecx
mov ebp, 0x47ae1199
dec ecx
mov esp, edi
inc ecx
pop ebp
inc esp
movzx edx, ax
dec edi
lea edi, [edx + edx - 0x526934f5]
pop ecx
dec eax
cdq
movzx esi, al
pop eax
or edx, esi
inc ebp
movzx ecx, di
inc bp
imul ecx, edi
pop edx
dec eax
lea ebp, [esi + esi*2 - 0x49db294f]
dec esi
lea esp, [ecx*4 - 0x374f24b]
inc bp
btc edi, edi
pop ebx
dec edx
lea edi, [edx*4 + 0x7a172f9c]
inc eax
shr dh, 0x67
inc ecx
pop edi
inc ebp
movsx ebx, sp
inc ebp
adc edx, ebx
inc ecx
sub esp, 0xf824bf00
inc ecx
pop ebx
inc ecx
ror esp, 0xab
inc ecx
rol ecx, 0x35
inc ecx
pop edx
jae 0x1522126
dec ebp
lea esp, [esp + edi + 0x7db92689]
dec esi
lea esi, [edi + 0x37282808]
pop esi
inc ecx
setnp cl
popfd
inc ecx
push esp
dec ecx
xchg esp, edi
dec esi
mov esp, dword [esp + ecx - 0x151ffff8]
pop edi
dec esi
mov esi, dword [esp + ecx - 0x151ffff8]
dec esi
lea ecx, [edi + ecx*2 - 0x5c65bbc9]
not edi
pop ebp
dec esp
mov eax, dword [esp + 8]
dec eax
mov dword [esp], 0x731c3e1f
inc ecx
push ecx
pop ebp
dec eax
mov ebp, dword [esp + 0x10]
inc ecx
xchg ecx, edi
dec eax
mov edi, dword [esp + 0x18]
inc esp
xchg byte [esp + 3], cl
dec esp
and al, 3
dec esp
mov ecx, dword [esp + 0x20]
call fcn.016b26fc
cdq
xor ecx, ebx
call fcn.0167e859
xlatb
or al, 0x16
leave
pop es
loopne 0x19a99d9
loopne 0x19a99da
push ecx
int3
lea eax, [ecx + ecx*8 + 0xfbe2729]
mov dword [esp + ecx*2], esi
ret 4