Function at 0x162644d
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x27c
mov eax, dword [0x13869788]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [0x13801118]
mov dword [ebp - 0x27c], eax
lea eax, [ebp - 0x264]
push eax
xor esi, esi
push 0x20019
push esi
push 0x13807f80
mov ebx, 0x80000002
push ebx
mov dword [ebp - 0x264], esi
mov dword [ebp - 0x270], esi
mov dword [ebp - 0x278], esi
call edi
test eax, eax
jne 0x163d71a
cmp dword [ebp + 0x10], 1
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x268], eax
jne 0x1626515
lea eax, [ebp - 0x270]
push eax
push 0x20019
push 0
push 0x13807f00
push ebx
call edi
test eax, eax
je 0x163d73d
push eax
push 0x13807f00
push 0x13808000
push 0x10000002
push dword [0x13867210]
call fcn.0161f8c1
add esp, 0x14
push dword [ebp - 0x264]
call dword [0x13801110]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0161f8d0
leave
ret 0xc
mov edi, dword [0x138010f8]
push 0x104
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x278]
push dword [ebp - 0x268]
call dword [0x1386707c]
test eax, eax
je 0x163d74e
cmp dword [ebp - 0x264], 0
mov esi, dword [0x13801110]
je 0x1626558
push dword [ebp - 0x264]
call esi
cmp dword [ebp - 0x270], 0
je 0x1626504
jmp 0x163db5d
cmp ah, byte [eax]
xor byte [0x4d20200a], cl
adc ch, byte [ecx]
or eax, 0x2501676e
push ebx
jns 0x163d7a0
add byte [ebp + 0x6d], dh
push edx
jae 0x163d7a4
jne 0x163d7a7
jb 0x163d79c
and byte gs:[eax], al
jnp 0x163d73e
add byte [edx], ch
add ecx, dword [ebx]
pop ebx
and byte [ecx], dh
xor dh, byte [eax]
pop ebp
and al, byte [ecx]
xlatb
sub al, byte [ebx]
or ebx, dword [ebx + 0x20]
xor dword [edx], esi
xor byte [ebp + 0x22], bl
add edi, edx
jae 0x163d7c4
add byte [ebx + 0x5c], dh
pop esp
js 0x163d789
pop edi
insd dword es:[edi], dx
imul eax, dword [eax], 0x736f7263
outsd dx, dword [esi]
je 0x163d78b
add dword [eax], eax
jbe 0x163d7c6
outsd dx, dword [esi]
ja 0x163d7d8
sub eax, 0x62006174
insb byte es:[edi], dx
je 0x163d7de
arpl word [0x706e0069], bp
jne 0x163d7ea
jo 0x163d7d9
outsb dx, byte [esi]
add byte gs:[edi + ebx*2 + 0x33], ch
xor dword [edx + 0x66], esp
xor edi, dword [eax]
add byte [0x33646136], dh
xor al, 0x65
add byte [ebx], dh
add byte gs:[ebx], dh
xor eax, 0x312e365f
aaa
add byte [esi], dh
xor byte [ecx], dh
xor dword cs:[edi], esi
xor eax, 0x5f348831
pop edi
outsb dx, byte [esi]
add byte [eax + 0x33315f], cl
popfd
add byte [esi + 0x62], ah
xor dword [ebp + esi + 0x63], esp
xor al, 0x36
add byte [esi], dh
xor bh, byte [ecx]
pop edi
xor dword [ebx], esi
add byte [ebp + 0x31626600], bl
xor eax, 0x363463
xor bh, byte ss:[ecx]
pop esp
bound ebp, qword [edi + 0x78]
adc byte gs:[ebp + ebp + 0x64], ah
add byte gs:[edi], ah
popal
popal
add byte [esi + 0x69], dh
jbe 0x163d831
and bl, byte [ebx + 0x67]
insb byte es:[edi], dx
cmp eax, 0x38783000
xor byte [eax], dh
xor byte [eax + esi], dh
and byte [eax], dh
xor byte [0x10a0d5d], dh
xor eax, 0x10a0d5d
mov edi, 0x3780302d
sub eax, 0x32203930
xor byte [edx], al
rol byte [eax], 0x39
sub al, 0x20
dec ecx
outsb dx, byte [esi]
outsw dx, word [esi]
and byte [ecx], dh
push cs
add byte [ebx + 0x53], al
dec ecx
or dword [ecx], 0x30301d80
inc eax
xor dh, byte [edx]
and byte gs:[ebp + 0x6e], dl
add dword [eax - 0x68], edx
je 0x163d87c
and byte [ecx], al
test dword [ecx], eax
mov esp, dword [eax]
adc byte [ecx + 0x6c5b2000], 0x3a
xor dh, byte [eax]
jnp 0x163d850
adc byte [eax], dh
jge 0x163d880
and cl, byte [eax]
cmp eax, 0x466f6620
jb 0x163d82c
mov dword [ebx*8 - 0x7f92a4e0], 0x13812
insd dword es:[edi], dx
adc byte [edx], 0x38
add dword [eax], eax
adc esi, dword [eax + esi]
jge 0x163d868
insb byte es:[edi], dx
cmp dh, byte [ecx]
pushal
cmp dword [eax], esi
jnp 0x163d87d
cmp dword [0x44bf0c40], esi
xor eax, 0x44bf0c40
xor dword [eax + 0x2e], eax
xor dh, byte [edx]
aaa
xor dh, byte [edx]
test byte [esp + esi], al
xor dword [ebx], esi
xor al, byte [esp + eax*2 + 0x33310034]
xor esi, dword [ebx]
aaa
xor esi, dword [edi]
xor dword [ecx + 0x65], esp
add byte gs:[ebp + 0x63], ah
xor byte [0x2e226566], dh
sbb dword [eax + 0x4120663c], edi
ja 0x163d843
cmp al, 0x66
and byte [ecx + 0x77], al
aad 0x37
aaa
outsd dx, dword fs:[esi]
add byte gs:[ebx + 0x20], dh
outsb dx, byte [esi]
outsd dx, dword [esi]
je 0x163d899
js 0x163d884
imul esi, dword [ebx + 0x74], 0x61639941
outsb dx, byte [esi]
jae 0x163d8f3
inc ecx
cdq
arpl word [ecx + 0x6e], sp
mov al, byte fs:[0x74616469]
enter 0x283d, 0x3f
and eax, 0xc02282f2
shr dword [ecx + 0x72], cl
add al, al
outsd dx, dword [esi]
jb 0x163d89f
shr byte [edi + 0x72], 2
jns 0x163d856
inc eax
xor esi, dword [eax]
and byte [edi + 0x41], dl
push edx
ror byte [esi + 0x49], 0x4e
dec esi
inc edi
cmp ah, byte [eax]
inc eax
mov dl, 0xc2
ret 0xc0c2
rcl byte [ebp + 0x6e], 0x63
push 0xc4c06e61
add dword [edi + 0x10], eax
les eax, [ecx]
inc edi
adc byte [ebx + 0x20], dh
jae 0x163d8df
popaw
rol byte [eax - 0x7f88df9c], 0x69
je 0x163d932
and byte [ebp + 0x72], ah
jb 0x163d8cf
jge 0x163d8d1
push ebx
push esp
inc ecx
push esp
push ebp
push ebx
pop edi
dec edi
add byte [edx + 0x4a], al
inc ebp
inc ebx
push esp
pop edi
dec esi
inc ecx
add byte [ebp + 0x45], cl
pop edi
dec esi
dec edi
push esp
pop edi
inc esi
nop
dec edi
push ebp
dec esi
inc esp
mov byte [0x20687442], al
and al, 0x18
jne 0x163d96b
push 0x75182420
jb 0x163d96c
jb 0x163d93b
inc eax
jp 0x163d8dd
push es
outsb dx, byte [esi]
outsb dx, byte [esi]
cmp ecx, dword gs:[eax]
inc ebp
je 0x163d91b
inc ebp
and cl, byte [ebx]
dec ebp
push esp
sub dl, byte [ebx + esi + 0x31]
shr dword [esi - 0x75], 0x39
xor al, 0x39
cmp byte [edi - 0x75], bh
jg 0x163d8a6
pop edi
jg 0x163d8a9
cmp byte [esi + 0x7f], 0x8b
jg 0x163d8af
jg 0x163d8b1
and byte [eax - 0x75], ch
xor dword [esi + 0x34], edi
jg 0x163d8b9
jg 0x163d8bb
jg 0x163d8bd
popal
mov edi, dword [edi + 0x318aa98a]
xor bh, byte es:[edi + 0x338aa08a]
mov edi, 0x338aa08a
xor bh, byte [edx - 0x384cd76]
xor dword [ecx], esi
pushal
test byte [ecx + 0x225920ba], al
lcall 0x3f77, 0x8adf8adf
lodsd eax, dword [esi]
and ch, byte [ebp + 0x2a348adf]
test eax, 0xa9411e7f
xor bh, ah
xor esi, dword [ebx]
invalid
mov ah, cl
dec word [edx + 0x7fbdcc7f]
loope 0x163d9d4
dec dword [edx + 0x7fbdcc7f]
int3
leave
cmp eax, 0x8aee8aef
xor dword [esi + 0x63458f38], ebp
popal
dec ebx
sbb esi, dword [esi]
pop dword [ebp + 0x65]
out 0x8a, al
push cs
xor esi, dword [eax - 0x78]
rol dword [edi + 0x707392f3], 0x6c
imul edi, edx, 0x7445cf74
aas
mov edi, dword [edi]
mov ebp, dword [edi - 0x64]
iretd
xor dword ss:[eax], esi
and ch, cl
push ecx
add dh, byte [eax + 0x40]
pushal
and dword [eax], edx
arpl word [ebp + 0x50], sp
pop ebp
add byte [ecx], al
add byte [eax + 0x45], dl
push edx
inc esi
cmp dl, byte [eax + ebx*2 + 0x43]
add byte [edi + 0x4d], cl
dec ebp
dec ecx
push esp
cmp esi, dword [edx]
xor al, dh
xor dh, byte [ebx]
xor byte [ecx], bh
scasd eax, dword es:[edi]
pop es
scasd eax, dword es:[edi]
pop es
outsd dx, dword [esi]
pshufw mm1, qword [eax + ecx], 0x31
bound bp, dword [edi + 0x38392e07]
xor esi, dword [ecx - 0x5e]
pop es
push esp
jb 0x163dc00
xchg byte [edi], dl
invalid
pushal
add byte [edx + 0x6366311d], dh
and ah, byte [eax]
mov ecx, 0x72656d0f
push eax
sub eax, 0x71006572
jne 0x163dc7f
jb 0x163dc7d
sub al, 0x20
and byte [edi + ebp*2 + 0x2d], 0x6e
outsd dx, dword [esi]
je 0x163dc50
arpl word [ecx], ax
rol ecx, 0xa0
and byte [eax + 0x61], dh
jae 0x163dca0
pop ds
pop es
xchg edx, eax
sbb al, 0x2f
pop ds
pop es
pushal
push es
and dword [eax], eax
sbb eax, dword [edi]
jle 0x163dc55
xor eax, 0x32301c2e
and esp, dword [eax]
jg 0x163dc5e
jb 0x163dc60
imul ebp, dword [esi + 0x69], 0x616974c0
insb byte es:[edi], dx
imul edi, dword [edx + 0x30], 0x4168902b
jo 0x163dc72
push 0x70197041
insb byte es:[edi], dx
jo 0x163dcc7
outsd dx, dword [esi]
jns 0x163dccb
cmp dword [eax], 0x676ee065
imul ebp, dword [esi + 0x65], 0x6e2f6e2f
loopne 0x163dcd1
imul ebp, dword [bp + 0x65], 0x6e2f6e2f
and dword [esi + 0x50], ebp
outsb dx, byte [esi]
push eax
ja 0x163dcd9
je 0x163dcda
inc ebx
lodsd eax, dword [esi]
and dl, dh
wrmsr
inc esp
xor byte [edx], dh
ret 0x6384
arpl word [ecx + ebp*2 - 0x3f], bp
add al, 0x69
add ah, byte [eax + 0x36]
imul eax, ecx, 0x64026904
and byte [esi], dh
xor ebx, dword [ebp + 0x22]
push esp
dec ecx
xor al, byte [eax + 0x305f302e]
cmp dh, byte [eax]
das
pop ds
jo 0x163dd17
pop ds
jo 0x163dc6c
cmpsb byte [esi], byte es:[edi]
sbb dh, byte [eax - 0x40]
cmp edi, edi
sbb eax, 0x11d41dff
call [0x11d41dff]
and dl, ah
and ah, dh
sbb eax, 0x50657845
mov esi, ecx
sbb eax, 0x94399071
pop es
cmp ah, byte [eax]
das
or byte [edi], ch
or byte [esi], ch
or byte [eax], ch
les edx, [ebp + 0x70]
loopne 0x163dd3c
cmp ah, byte gs:[eax]
cmp ah, byte [eax]
fistp qword [eax - 0x30]
js 0x163dccd
sar byte [eax - 1], 1
invalid
out dx, eax
or edi, ebp
or edi, ebp
or edi, ebp
or eax, esi
add eax, 0x9ef09ef
out dx, eax
or edi, ebp
out dx, eax
or edi, ebp
or dword [edi - 0x7d36f611], eax
push eax
mov esi, 0x65446e69
inc ebp
xchg edi, ebp
or ecx, ecx
adc byte [eax - 0x42], 0x69
outsb dx, byte [esi]
inc esp
inc ebp
push ds
mov ah, 0x3a
and al, dh
test dword [edi - 0x21], ebx
pushfd
fistp dword [edi + ebx*2 + 0x5f0a895d]
mov ebx, 0xc4105fc8
pop edi
xor al, byte [eax]
bound esi, qword [edi]
popal
xor byte [edx + 0x63], ah
cmp eax, eax
bound edi, qword [ecx]
aaa
aaa
lahf
adc byte [edi + 0x109fff10], bl
lahf
adc byte [edi - 0x6b6d20f0], bl
call [edi - 0x60ef60f0]
adc bh, bl
xchg edx, eax
xchg esp, eax
leave
mov edx, 0xea1a8f22
jno 0x163dda8
out dx, eax
or edi, ebp
or edi, ebp
or edi, ebp
or edi, ebp
or edi, ebp
or edi, ebp
or dword [esi], ebp
invalid
and al, 0xea
or dword [edi + 0x5f36381a], ecx
out dx, eax
xchg ebp, eax
pop ds
jmp 0x163dcde
jo 0x163de16