Function at 0x438af0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov eax, dword [ebp + 8]
movzx eax, word [eax]
mov dword [esp + 0x30], 0xb3b21b0d
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xf
ja 0x438b91
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx esi, byte [esp + edx + 0x30]
lea edi, [ecx + 0x4f70b7c8]
lea edx, [ecx + esi]
add edx, 0x4f70b7c8
add ecx, 0xc8
or ecx, edi
and edi, esi
and ecx, esi
add ecx, edi
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
add cl, 0x88
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x10
jb 0x438b40
xor ecx, ecx
cmp dword [esp + 0x30], eax
setne cl
mov eax, dword [ecx*4 + 0x4466c4]
mov ecx, 0x4569efd9
xor ecx, dword [0x4466cc]
add ecx, eax
inc ecx
xor eax, eax
jmp ecx
aas
aam 0x3f
add byte [eax], al
add byte [eax + 3], ah
add byte [eax + eax], bl
add byte [eax + 0x30], dl
pop ebx
xor byte [ecx + 0x30], ch
outsb dx, byte [esi]
xor byte [ecx + 0x30], bh
xchg edi, eax
xor byte [edx - 0x39cf44d0], ah
xor byte [eax + 0x31], ah
insb byte es:[edi], dx
xor dword [edi + 0x4e324231], edx
xor al, byte [ebp + 0x20341132]
xor al, 0x67
xor al, 0xe
xor eax, 0x354d351e
adc eax, 0x56362136
and eax, 0x64373137
aaa
and dword [eax], edi
sub eax, 0xd6386738
cmp edx, esp
cmp dword [ecx], esp
cmp dl, byte [esi]
cmp esp, dword [esi]
cmp ebp, dword [ebp + 0x3b]
xor dword [ecx + eax*2], edi
cmp al, 0x8b
cmp al, 0x26
cmp eax, 0x3d713d32
add byte [eax + 3], dh
add byte [eax + 0x51000000], bh
xor dword [ecx + 0x31], esp
cmpsd dword [esi], dword es:[edi]
xor dword [edi - 0x3acb45cc], ebp
xor al, 0xd4
xor al, 0xdf
xor al, 0xa0
xor eax, 0x35b935ae
sal dword [0x35e935dc], 1
hlt
je 0x453302
js 0x453304
jl 0x453306
cmp byte [eax], 0x84
cmp byte [eax - 0x6fc773c8], cl
cmp byte [eax + edi + 0x389c3898], dl
mov al, byte [0xa838a438]
cmp byte [eax + edi + 0x38b438b0], ch
mov eax, 0xc038bc38
cmp ah, al
cmp al, cl
cmp ah, cl
cmp al, dl
cmp ah, dl
cmp al, bl
cmp ah, bl
cmp al, ah
cmp ah, ah
cmp al, ch
cmp ah, ch
call 0xf07e1f3f
in al, dx
cmp al, dh
invalid
cmp ah, dh
cmp al, bh
cmp ah, bh
cmp byte [eax], al
cmp dword [ecx + edi], eax
or byte [ecx], bh
or al, 0x39
adc byte [ecx], bh
adc al, 0x39
sbb byte [ecx], bh
sbb al, 0x39
and byte [ecx], bh
and al, 0x39
sub byte [ecx], bh
sub al, 0x39
xor byte [ecx], bh
xor al, 0x39
cmp byte [ecx], bh
cmp al, 0x39
inc eax
cmp dword [ecx + edi + 0x48], eax
cmp dword [ecx + edi + 0x50], ecx
cmp dword [ecx + edi + 0x58], edx
cmp dword [ecx + edi + 0x60], ebx
cmp dword [ecx + edi + 0x68], esp
cmp dword [ecx + edi + 0x70], ebp
cmp dword [ecx + edi + 0x78], esi
cmp dword [ecx + edi - 0x80], edi
cmp dword [ecx + edi + 0x398c3988], eax
nop
cmp dword [ecx + edi + 0x399c3998], edx
mov al, byte [0xa839a439]
cmp dword [ecx + edi + 0x39b439b0], ebp
mov eax, 0xc039bc39
cmp esp, eax
cmp eax, ecx
cmp esp, ecx
cmp eax, edx
cmp esp, edx
cmp eax, ebx
cmp esp, ebx
cmp eax, esp
cmp esp, esp
cmp eax, ebp
cmp esp, ebp
cmp eax, esi
cmp esp, esi
cmp eax, edi
cmp esp, edi
cmp dword [eax], eax
cmp al, byte [edx + edi]
or byte [edx], bh
or al, 0x3a
adc byte [edx], bh
and byte [edx], bh
and al, 0x3a
sub byte [edx], bh
sub al, 0x3a
xor byte [edx], bh
xor al, 0x3a
cmp byte [edx], bh
cmp al, 0x3a
inc eax
cmp al, byte [edx + edi + 0x48]
cmp cl, byte [edx + edi + 0x50]
cmp dl, byte [edx + edi + 0x58]
cmp bl, byte [edx + edi + 0x60]
cmp ah, byte [edx + edi + 0x68]
cmp ch, byte [edx + edi + 0x70]
cmp dh, byte [edx + edi + 0x78]
cmp bh, byte [edx + edi - 0x80]
cmp al, byte [edx + edi + 0x3a8c3a88]
nop
cmp dl, byte [edx + edi + 0x3a9c3a98]
mov al, byte [0xa83aa43a]
cmp ch, byte [edx + edi + 0x3ab43ab0]
mov eax, 0xc03abc3a
cmp al, ah
cmp cl, al
cmp cl, ah
cmp dl, al
cmp dl, ah
cmp bl, al
cmp bl, ah
cmp ah, al
cmp ah, ah
cmp ch, al
cmp ch, ah
cmp dh, al
cmp dh, ah
cmp bh, al
cmp bh, ah
cmp al, byte [eax]
cmp eax, dword [ebx + edi]
or byte [ebx], bh
or al, 0x3b
adc byte [ebx], bh
adc al, 0x3b
sbb byte [ebx], bh
sbb al, 0x3b
and byte [ebx], bh
and al, 0x3b
sub byte [ebx], bh
sub al, 0x3b
xor byte [ebx], bh
xor al, 0x3b
cmp byte [ebx], bh
cmp al, 0x3b
inc eax
cmp eax, dword [ebx + edi + 0x48]
cmp ecx, dword [ebx + edi + 0x50]
cmp edx, dword [ebx + edi + 0x58]
cmp ebx, dword [ebx + edi + 0x60]
cmp esp, dword [ebx + edi + 0x68]
cmp ebp, dword [ebx + edi + 0x70]
cmp esi, dword [ebx + edi + 0x78]
cmp edi, dword [ebx + edi - 0x80]
cmp eax, dword [ebx + edi + 0x3b8c3b88]
nop
cmp edx, dword [ebx + edi + 0x3b9c3b98]
mov al, byte [0xa83ba43b]
cmp ebp, dword [ebx + edi + 0x3bb43bb0]
mov eax, 0xc03bbc3b
cmp eax, esp
cmp ecx, eax
cmp ecx, esp
cmp edx, eax
cmp edx, esp
cmp ebx, eax
cmp esp, eax
cmp esp, esp
cmp eax, dword [eax]
cmp al, 4
cmp al, 0x10
cmp al, 0x14
cmp al, 0x18
cmp al, 0x1c
cmp al, 0x20
cmp al, 0x24
cmp al, 0x28
cmp al, 0x2c
cmp al, 0x30
cmp al, 0x34
cmp al, 0x38
cmp al, 0x3c
cmp al, 0x40
cmp al, 0x44
cmp al, 0x48
cmp al, 0x4c
cmp al, 0x50
cmp al, 0x54
cmp al, 0x58
cmp al, 0x5c
cmp al, 0x60
cmp al, 0x64
cmp al, 0x68
cmp al, 0x6c
cmp al, 0x70
cmp al, 0x74
cmp al, 0x78
cmp al, 0x7c
cmp al, 0x80
cmp al, 0x84
cmp al, 0x88
cmp al, 0x8c
cmp al, 0x90
cmp al, 0x94
cmp al, 0x98
cmp al, 0x9c
cmp al, 0xa0
cmp al, 0xa4
cmp al, 0xa8
cmp al, 0xac
cmp al, 0xb0
cmp al, 0xb4
cmp al, 0xb8
cmp al, 0xbc
cmp al, 0xc0
cmp al, 0xc4
cmp al, 0xc8
cmp al, 0xcc
cmp al, 0xd0
cmp al, 0xd4
cmp al, 0xd8
cmp al, 0xdc
cmp al, 0xe0
cmp al, 0xe4
cmp al, 0xe8
cmp al, 0xec
cmp al, 0xf0
cmp al, 0xf4
cmp al, 0xf8
cmp al, 0xfc
cmp al, 0
cmp eax, 0x3d083d04
or al, 0x3d
adc byte [0x3d183d14], bh
sbb al, 0x3d
and byte [0x3d283d24], bh
sub al, 0x3d
xor byte [0x3d383d34], bh
cmp al, 0x3d
inc eax
cmp eax, 0x3d483d44
dec esp
cmp eax, 0x3d543d50
pop eax
cmp eax, 0x3d603d5c
cmp eax, 0x3d6c3d68
jo 0x45356d
je 0x45356f
js 0x453571
jl 0x453573
cmp byte [0x3d883d84], 0x8c
cmp eax, 0x3d943d90
cwde
cmp eax, 0x3da03d9c
movsb byte es:[edi], byte [esi]
cmp eax, 0x3dac3da8
mov al, 0x3d
mov ah, 0x3d
mov eax, 0xc03dbc3d
cmp eax, 0x3dc83dc4
int3
cmp eax, 0x3df43df0
clc
cmp eax, 0x3df83df4
cld
cmp eax, 0x3e043e00
cmp eax, 0x3dfc3df8
add byte [esi], bh
cmp eax, 0x3e003dfc
add al, 0x3e
or byte [esi], bh
or al, 0x3e
adc byte [esi], bh
adc al, 0x3e
sbb byte [esi], bh
sbb al, 0x3e
and byte [esi], bh
and al, 0x3e
sub byte [esi], bh
sub al, 0x3e
xor byte [esi], bh
xor al, 0x3e
cmp byte [esi], bh
cmp al, 0x3e
inc eax
inc esp
dec eax
dec esp
push eax
push esp
pop eax
pop esp
pushal
push 0x743e703e
jl 0x4535f0
cmp byte [esi], 0x88
invalid
les edi, [edi]
enter 0xffffffffffffd03f, 0x3f
aam 0x3f
in al, 0x3f
call 0xf485263e
aas
add byte [eax], al
add al, 0
invalid