Function at 0x436489
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf2552
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov edx, dword [ebp + 0x10]
movsx eax, byte [edx + 0x15]
mov dword [ebp - 0x20], ecx
test eax, eax
je 0x4365b4
push 0xd27f00
lea ecx, [ebp - 0x64]
call fcn.0043594d
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
call 0xce9906
mov dword [ebp - 4], 1
mov dword [ebp - 0x8c], 0xe442a8
lea esi, [ebp - 0x80]
xor eax, eax
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x7c], al
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x30], esi
test ebx, ebx
lea edi, [ebp - 0x64]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
jae 0x436528
call 0xd1c4aa
mov ebx, dword [ebp - 0x50]
lea eax, [ebp - 0x80]
lea edx, [ebp - 0x64]
cmp ebx, 0xffffffff
jbe 0x436538
mov ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
cmp eax, edx
je 0x436a51
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x436553
call 0xd1c46b
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x68]
cmp esi, ebx
jb 0x436949
test ebx, ebx
je 0x43692a
test ebx, ebx
ja 0x4368c7
mov dword [ebp - 4], 0
push 0xe4a780
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x8c]
mov dword [eax], 0xe442cc
push edx
call 0xce9b83
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp eax, 0x10
jae 0x4368b9
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x4c], 0xf
xor eax, eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x60], al
mov eax, dword [ebp + 0xc]
mov ebx, edx
test eax, eax
je 0x436f68
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x4365d0
call 0xce98ed
jmp 0x436608
mov eax, dword [edx + 8]
movsx ecx, byte [eax + 0x15]
test ecx, ecx
je 0x4365ef
mov ecx, dword [edx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
je 0x436b38
mov dword [ebp + 0x10], ecx
jmp 0x436608
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
jne 0x436605
mov eax, dword [eax]
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x4365f9
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
movsx edx, byte [eax + 0x15]
mov edi, ebx
test edx, edx
je 0x436619
mov esi, dword [ebx + 8]
jmp 0x43662e
mov edx, dword [ebx + 8]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x436628
mov esi, eax
jmp 0x43662e
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + 8]
cmp edi, ebx
je 0x436e88
mov dword [eax + 4], edi
mov eax, dword [ebx]
mov dword [edi], eax
cmp edi, dword [ebx + 8]
jne 0x436646
mov ecx, edi
jmp 0x436663
mov ecx, dword [edi + 4]
movsx eax, byte [esi + 0x15]
test eax, eax
je 0x436e80
mov dword [ecx], esi
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov edx, dword [ebx + 8]
mov dword [edx + 4], edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 4]
cmp ebx, dword [eax + 4]
je 0x436e78
mov eax, dword [ebx + 4]
cmp ebx, dword [eax]
je 0x436681
mov dword [eax + 8], edi
jmp 0x436683
mov dword [eax], edi
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
movzx eax, byte [edi + 0x14]
movzx edx, byte [ebx + 0x14]
mov byte [edi + 0x14], dl
mov byte [ebx + 0x14], al
movsx eax, byte [ebx + 0x14]
cmp eax, 1
je 0x436b5f
push ebx
call 0xce817e
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 8]
test eax, eax
je 0x4366bb
add eax, 0xffffffff
mov dword [edx + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
adc dword [ebp + 0xf232825], edi
adc byte [ebx - 0x58], bh
aaa
sub edi, 0xd092af1c
lodsb al, byte [esi]
test eax, 0xa2f9b553
fcom qword [esi + 0x7c]
adc byte [edi + 0x7dc40c3b], 0x5e
jge 0x436927
ja 0x4368dc
cmp esp, edi
mov esp, 0x771e34a7
invalid
into
stc
jmp 0x4368a8
hlt
sti
ret
sub dword [0x343f44a6], ebx
nop
push ecx
iretd
cmp ebp, edi
popfd
iretd
out dx, eax
mov ds, word [esi - 0x6050e892]
adc edi, edi
dec esp
shl byte [ebx + 0x4f], 0xe8
aas
cmp al, 0x67
rol al, 1
push cs
push ds
insb byte es:[edi], dx
sal esp, cl
ja 0x436a3c
scasb al, byte es:[edi]
xor dword [edx], esi
mov eax, dword [0xcbbeadb6]
std
cmp dword [ebx - 0x3e037bd], esp
mov bl, 0xbc
aad 0x7f
movsd dword es:[edi], dword [esi]
inc ebx
pop esp
jns 0x4369fb
push ecx
fadd qword [eax]
add dl, byte [edi - 0x14167d12]
mov dl, 0x9a
adc ebx, ecx
xor al, bh
mov al, byte [edi]
inc esp
pushfd
imul ecx, ebp, 0x2d5eaf1c
and byte [ebx + 0x3900a215], bl
mov ebp, 0xe4ea6839
invalid
invalid
mov dl, 0x79
ror dword [ebx + 0x1e7923fc], 1
pop esi
invalid
and byte [edi + ebp*8 - 0x43], ch
fcmovne st(0), st(0)
lds ecx, [edi + ebx*2 - 0x3fcb99d4]
pop edi
sub al, 0x66
xor al, 0xc0
sal dword [edx - 0x56], 1
push esi
inc esp
rcr byte [edi - 0x54], 1
jns 0x436ed1
cmp edx, dword [ecx - 0x42]
out dx, al
dec edx
mov ebx, edi
mov dl, 0xbd
xchg edi, esi
ror byte [ebx], cl
xchg al, ah
lodsb al, byte [esi]
jns 0x436f1e
mov bl, byte [ecx]
and byte ds:[ebx + 0x49], dh
pop es
retf
mov ecx, 0xf15e1ca
insb byte es:[edi], dx
adc byte [edi], ch
lodsb al, byte [esi]
lahf
mov esp, 0x9c4f62df
aas
insd dword es:[edi], dx
invalid
call 0x3f8fd882
scasd eax, dword es:[edi]
mov ecx, 0x95c6b5d
outsd dx, dword [esi]
sub cl, byte [ebx]
push ss
mov dword [edi - 0x44], ebp
mov dword [ebx], edi
lodsb al, byte [esi]
mov esp, 0x5ce8adb4
mov dh, 0xc9
mov ebp, 0x63fedfea
xchg esi, eax
dec byte [ecx + 0x3c7e3b61]
mov edx, 0x6b0aab08
jo 0x436f2e
outsd dx, dword [esi]
mov esp, 0xbcac3b89
mov ah, 0xad
call 0xbe0d2597
ljmp 0x89fe
stc
imul edi, dword [ebx + edx*2 + 0x65], 0xc076eaa7
sal byte [eax - 0x4f5f1a09], 0xbe
cmp al, 0xf9
int1
pop es
pop ds
push 0x5c
adc esi, dword ds:[ebx]
lahf
inc eax
fild qword [edx + 0xf]
cmp ecx, ecx
dec edi
mov bh, 0xee
mov ebp, dword [ebx]
cmpsb byte [esi], byte es:[edi]
fimul word [ecx + edx - 0x46253f6b]
mov word [ecx], ss
xchg ebp, eax
rcr dl, 0xb9
and eax, dword [edx + 0x4b4b9c63]
sbb eax, 0x7f597a56
xor byte [ebx], 0x8c
or al, 0x18
adc dword [esi + ecx], ebx
push eax
mov ch, byte [ebp + 0x79ff83e7]
rcl dl, 0xea
inc edi
test byte [esp + esi*2 + 0x12ffa12b], cl
jnp 0x436f76
movsd dword es:[edi], dword [esi]
aas
add eax, 0x5cca392f
das
or edi, dword [esi]
or al, 0x1d
mov byte [esi], bl
lodsb al, byte [esi]
push 0xffffffffffffffaa
fidivr dword [esi + 0x4febb9c2]
cdq
xchg ecx, eax
invalid