Function at 0x43654b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf256c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x20], ecx
cmp eax, 0x3ffffffe
jb 0x436689
mov dword [ebp - 0x48], 0xf
lea edx, [ebp - 0x60]
xor eax, eax
mov ecx, 0x13
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], 0xd27f1c
mov dword [ebp - 0x30], edx
cmp eax, 0x10
mov dword [ebp - 0x28], 0x13
jb 0x4365bb
mov ebx, dword [ebp - 0x5c]
jmp 0x4365be
lea ebx, [ebp - 0x5c]
mov edx, 0xd27f1c
cmp edx, ebx
jae 0x436e01
xor edx, edx
test edx, edx
je 0x436622
cmp eax, 0x10
jb 0x4365db
mov edx, dword [ebp - 0x5c]
jmp 0x4365de
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x60]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov ebx, 0xd27f1c
sub ebx, edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], ebx
cmp edx, ebx
jae 0x436606
call 0xd1b678
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x38]
mov eax, edx
sub eax, ebx
cmp ecx, eax
jb 0x436610
mov ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x436bdc
mov dword [ebp - 0x34], 0x13
cmp eax, 0x13
jb 0x436d20
mov eax, dword [ebp - 0x34]
test eax, eax
ja 0x436cce
mov dword [ebp - 4], 8
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x90]
call fcn.0043926f
push 0xe4a7c0
lea eax, [ebp - 0x90]
push eax
call 0xce8d51
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jae 0x436cc0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x48], 0xf
xor eax, eax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov ebx, dword [ebp + 0x10]
push 0x14
mov esi, dword [ecx + 4]
call 0xce72e2
pop ecx
test eax, eax
je 0x4366b3
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov esi, dword [ebp + 0x14]
mov edi, dword [esi]
mov dword [eax + 0xc], edi
xor edx, edx
mov byte [eax + 0x10], dl
mov byte [eax + 0x11], dl
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
add dword [esi + 8], 1
cmp edx, ecx
je 0x436f82
movzx ecx, byte [ebp + 0xc]
test ecx, ecx
je 0x4366df
mov dword [edx], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx]
je 0x436e28
jmp 0x4366ee
mov dword [edx + 8], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx + 8]
je 0x436f7a
mov edx, dword [eax + 4]
movsx ebx, byte [edx + 0x10]
mov ecx, eax
test ebx, ebx
jne 0x4367a2
mov ebx, dword [ecx + 4]
mov edx, dword [ebx + 4]
mov edi, dword [edx]
cmp ebx, edi
je 0x436e8e
movsx edx, byte [edi + 0x10]
mov dword [ebp + 0x10], edi
test edx, edx
jne 0x436737
mov edx, 1
mov byte [ebx + 0x10], dl
mov byte [edi + 0x10], dl
mov ebx, dword [ecx + 4]
mov edi, dword [ebx + 4]
mov byte [edi + 0x10], 0
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 4]
jmp 0x436793
mov edx, dword [ebx]
cmp ecx, edx
je 0x436e42
mov byte [ebx + 0x10], 1
mov edx, dword [ecx + 4]
mov ebx, dword [edx + 4]
mov byte [ebx + 0x10], 0
mov edi, dword [ecx + 4]
mov ebx, dword [edi + 4]
mov edx, dword [ebx + 8]
mov edi, dword [edx]
mov dword [ebx + 8], edi
mov edi, dword [edx]
mov dword [ebp - 0x24], edi
movsx edi, byte [edi + 0x11]
test edi, edi
je 0x436e37
mov edi, dword [ebx + 4]
mov dword [edx + 4], edi
mov edi, dword [esi + 4]
cmp ebx, dword [edi + 4]
je 0x436e2f
mov edi, dword [ebx + 4]
cmp ebx, dword [edi]
je 0x43678c
mov dword [edi + 8], edx
jmp 0x43678e
mov dword [edi], edx
mov dword [edx], ebx
mov dword [ebx + 4], edx
mov edx, dword [ecx + 4]
movsx ebx, byte [edx + 0x10]
test ebx, ebx
je 0x4366ff
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
mov edx, dword [ebp + 8]
test esi, esi
mov byte [ecx + 0x10], 1
mov dword [edx + 4], eax
mov dword [edx], 0
je 0x436f6a
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
mov dword [edx], esi
mov esi, dword [ebp - 0x18]
mov eax, edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
push cs
lea edx, [ebx]
sbb al, dl
pavgb mm7, qword [edi + 0x19]
insd dword es:[edi], dx
inc ebp
das
cmpsb byte [esi], byte es:[edi]
sbb esi, dword [edi]
stc
pop eax
insb byte es:[edi], dx
insd dword es:[edi], dx
dec esp
xchg edx, esi
xchg edi, eax
cmp al, 0x3a
sbb eax, 0x817dcfe
adc dword [ecx + 0x35], ebx
stc
mov esp, 0x12322e81
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
stosb byte es:[edi], al
jl 0x436c4e
sbb byte [eax], ah
pop ebx
jl 0x436bc6
test bl, al
or al, 0x54
wait
mov ah, 0x5c
shr byte [ebx + ebp*8], 0xd7
invalid
in eax, 0x56
sub al, 0x57
ret 0x781c
lahf
invalid
adc esp, dword [0xb34f5d00]
jno 0x436cda
pop ebp
dec edi
mov bl, 0x71
add al, 0xbe
aas
inc esi
pop esp
mov esi, 0xd65c463f
salc
or eax, 0x2c960f68
add edi, ebp
adc ecx, eax
and eax, 0x99a032f8
arpl word [edx], ax
pushfd
popal
mov ecx, 0x33b78f
xor cl, 0x9e
cmp al, 0xec
dec eax
ror dword [edx + eax], cl
pop esp
sub byte [ecx + 0x1b], al
jo 0x436cd1
invalid
push ecx
leave
pushfd
iretd
pop ecx
cmp byte [di - 0x1c], 0xfd
ljmp 0xb928
and ebp, dword [ebx - 0x42b61bee]
cmpsb byte [esi], byte es:[edi]
invalid
aam 0x46
mov edx, ds
jle 0x436e6f
or byte [ebx], dh
ljmp 0x9c6b
clc
imul ebx, dword [ebx + edx*4 + 0x39d422d1], 0x1c
xor al, 0x8c
xor edx, dword [ebx]
pop ss
mov byte [0x61bd47dc], al
mov bl, 0xc3
mov esi, 0x5c57897d
xchg ebx, eax
dec ecx
add byte [ebp + 0x13f0637e], dh
xor dh, dh
push esi
xchg esp, eax
out 0x1c, al
mov ebx, dword [esi + 0x5581ddef]
test byte [esi - 0xd], bl
fld qword [ecx - 0xca17bab]
das
out 0x6e, eax
cwde
sbb al, 0x80
hlt
push ebx
call 0xe4dd740b
xchg esp, eax
cld
mov bl, 0xec
ret
cmp dword [esp + ebx*4 - 0x6b], edx
test dword [edi + 0x49235ed4], ebp
xlatb
xor ebx, ebx
invalid
add dword [ecx - 0x7e13eae6], ebp
int 0xcb
fdiv st(2)
invalid
retf