Function at 0x436980
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp + 0x20], 0xb3b2b160
mov dword [esp + 0x24], 0
mov dword [esp + 0x27], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x436a04
nop word [eax + eax]
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x20]
lea esi, [ecx + 0xe8]
and esi, edx
mov eax, 0x1cb4617
sub eax, ecx
or eax, edx
not eax
add eax, edx
sub eax, esi
mov ecx, eax
xor ecx, 0xa7
and eax, 0x27
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x20], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x4369c0
mov eax, dword [esp + 0x20]
mov eax, dword fs:[eax]
xor ecx, ecx
cmp dword [ebp + 8], 0
sete cl
mov ecx, dword [ecx*4 + 0x445624]
mov edx, 0xa5c3ab0a
xor edx, dword [0x44562c]
add ecx, edx
inc ecx
jmp ecx
add al, ah
inc esi
add al, ah
inc esi
add dl, ah
inc esi
add byte [eax], al
inc si
add byte [eax], al
inc si
add byte [edx - 0x65ffb99a], bl
inc si
add byte [edx - 0x65ffb99a], bl
inc si
add bl, dl
inc si
add byte [eax], al
inc esi
add byte [eax], al
inc esi
add byte [edi], al
inc esi
add byte [edi], al
inc esi
add byte [edi], al
inc esi
add byte [ecx], cl
and byte [esi], al
jae 0x43e1af
inc esi
add byte [eax], dl
push ebx
inc esi
add al, ah
pop ecx
inc esi
add byte [eax], al
pop edx
inc esi
add byte [esi + 0x5a], cl
inc esi
add byte [eax + 0x4100465a], dl
sub byte [esi], al
push ecx
inc esi
add al, al
dec edx
inc esi
add al, dh
dec edx
inc esi
add byte [eax], al
dec ebx
inc esi
add byte [eax + 0x43], al
inc esi
add byte [eax - 0x5fffb9bd], dh
xor al, byte [esi]
mov al, 0x32
inc esi
add ch, bh
push edi
inc esi
add byte [edx + 0x2000465d], dl
pop ebp
inc esi
add byte [eax + 0x5d], dl
inc esi
add byte [eax - 0x1fffb9a3], al
inc esi
inc esi
add byte [eax], al
inc esi
add byte [edx + 0x400461f], ch
inc esi
add byte [esi + 0x61], dl
inc ebx
fisttp qword [ebx]
xor eax, 0x587e9998
jle 0x43e21e
cmp eax, 0xe3b3bc77
loop 0x43e1d5
jecxz 0x43e1ae
or cl, ah
adc eax, 0xaedfbdad
dec eax
pop edx
loope 0x43e1e4
lodsd eax, dword [esi]
mov ebp, 0x5a48aedf
jecxz 0x43e1ca
pop es
into
pop ds
inc esi
add al, dh
pop ds
inc esi
add byte [0x181ac491], dl
xor ebp, dword [esi + 0x1c56c049]
add dword [ecx], ecx
and byte [esi], al
mul dword [eax]
inc esi
add ah, bh
sbb byte [ebx], dh
scasb al, byte es:[edi]
dec ecx
rcl byte [esi + 0x1c], 1
or dword [eax], esp
inc esi
add bh, dh
and byte [esi], al
cld
int 0xc2
mov ebp, 0x4621ac
mul dword [eax]
inc esi
add byte [edi - 0x2e5c824b], ah
and dword [esi], eax
lodsb al, byte [esi]
pop edi
inc esi
add byte [ebp + 0x47], al
adc dword [edi - 3], esp
lcall 0xc37f, 0x25c08e77
aas
jne 0x43e278
push ecx
push esp
hlt
shr byte [0x5cc60046], 1
xchg byte [edi], ch
mov al, 0x26
inc esi
add byte [eax], dh
xor eax, dword [esi]
pushal
cmp eax, ebx
mov ch, 0x30
pop ebp
inc esi
add byte [edx + 0x33], dl
inc esi
add cl, ch
and dword [ebp - 0x67], ebx
out dx, eax
push edx
inc esi
add bl, bh
xor eax, dword [esi]
aas
inc ebp
movsb byte es:[edi], byte [esi]
pop esp
pop esp
dec ebp
xor ah, 0xac
aaa
stosd dword es:[edi], eax
mov ch, 0xbd
add byte [esi + 0x2fc46b9a], bl
add eax, 0x9bec6eb9
sbb al, 0x7c
out dx, al
out dx, eax
push edx
inc esi
add bl, al
xor al, 0x46
add byte [esi], bh
mov cl, byte [edi]
pushal
out dx, eax
push edx
inc esi
add byte [ecx + 0x2f004635], cl
psadbw mm0, qword [ebx]
out dx, eax
push edx
inc esi
add byte [edi + 0x36], ch
inc esi
add byte [ebp - 0x4d], bh
fnstcw word [ebx]
cmp esi, dword [ebx + 0x51]
inc esi
add byte [ecx], ah
push edx
inc esi
add byte [eax], ah
mov edx, 0x51736bb1
imul esi, dword [ebx + 0x51], 0x46
add bh, ch
push edx
inc esi
add byte [eax - 0x27], ah
mov dh, 0x37
in eax, dx
and edi, edx
punpckldq mm7, dword [ebp + 0x5b]
bound edi, qword [ebp + 0x5b]
xor dword [eax], edx
push ebx
inc esi
add byte [eax], dl
push ebx
inc esi
add byte [edx - 0x6e], dh
insb byte es:[edi], dx
retf 0x5312
mov ebx, 0x4657def5
add dl, dh
push edi
inc esi
add byte [edi - 0x3b], bh
dec eax
pop ebp
stosd dword es:[edi], eax
int1
jae 0x43e362
test al, 0xc2
loopne 0x43e32a
adc dword [ecx], ecx
imul eax, dword [0xc728c830], 0xffffffe0
pop ecx
inc esi
add byte [ecx], cl
pop ebx
inc esi
add byte [ebp - 0x1c], al
invalid
inc esi
add bh, bl
xchg edi, eax
insd dword es:[edi], dx
mov bh, 0
pop edx
inc esi
add al, ah
pop ecx
inc esi
add byte [edx + 0x63], bl
pop edx
arpl word [eax], di
cmp dl, byte [ecx - 0x1de071e2]
invalid
hlt
invalid