Function at 0x436254
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 0x43637f
push 0xd27f00
lea ecx, [ebp - 0x64]
call fcn.00435718
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
call 0xce96d1
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 0x4362f3
call 0xd1c275
mov ebx, dword [ebp - 0x50]
lea eax, [ebp - 0x80]
lea edx, [ebp - 0x64]
cmp ebx, 0xffffffff
jbe 0x436303
mov ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
cmp eax, edx
je 0x43681c
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x43631e
call 0xd1c236
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x68]
cmp esi, ebx
jb 0x436714
test ebx, ebx
je 0x4366f5
test ebx, ebx
ja 0x436692
mov dword [ebp - 4], 0
push 0xe4a780
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x8c]
mov dword [eax], 0xe442cc
push edx
call 0xce994e
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp eax, 0x10
jae 0x436684
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 0x436d33
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x43639b
call 0xce96b8
jmp 0x4363d3
mov eax, dword [edx + 8]
movsx ecx, byte [eax + 0x15]
test ecx, ecx
je 0x4363ba
mov ecx, dword [edx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
je 0x436903
mov dword [ebp + 0x10], ecx
jmp 0x4363d3
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
jne 0x4363d0
mov eax, dword [eax]
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x4363c4
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
movsx edx, byte [eax + 0x15]
mov edi, ebx
test edx, edx
je 0x4363e4
mov esi, dword [ebx + 8]
jmp 0x4363f9
mov edx, dword [ebx + 8]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x4363f3
mov esi, eax
jmp 0x4363f9
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + 8]
cmp edi, ebx
je 0x436c53
mov dword [eax + 4], edi
mov eax, dword [ebx]
mov dword [edi], eax
cmp edi, dword [ebx + 8]
jne 0x436411
mov ecx, edi
jmp 0x43642e
mov ecx, dword [edi + 4]
movsx eax, byte [esi + 0x15]
test eax, eax
je 0x436c4b
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 0x436c43
mov eax, dword [ebx + 4]
cmp ebx, dword [eax]
je 0x43644c
mov dword [eax + 8], edi
jmp 0x43644e
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 0x43692a
push ebx
call 0xce7f49
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 8]
test eax, eax
je 0x436486
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
push dword [ebp - 0x60]
call 0xce7f49
pop ecx
jmp 0x43636d
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x18]
cmp ecx, 0x10
jb 0x4366a2
mov ebx, dword [ebx + 4]
jmp 0x4366a5
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x4366b5
mov edx, dword [edx + 4]
jmp 0x4366b8
add edx, 4
add edx, dword [ebp - 0x28]
push dword [ebp - 0x3c]
movzx eax, byte [ebp - 0x44]
mov byte [ebp - 0x48], al
push edx
push ecx
push ebx
call 0xce9998
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x4366e9
mov eax, dword [eax + 4]
jmp 0x4366ec
add eax, 4
mov byte [eax + ecx], 0
jmp 0x436339
mov dword [ebp - 0x6c], 0
cmp esi, 0x10
jb 0x436706
mov eax, dword [ebp - 0x7c]
jmp 0x436709
lea eax, [ebp - 0x7c]
mov byte [eax], 0
mov ebx, dword [ebp - 0x40]
jmp 0x475663fd
invalid
xchg ecx, eax
pop ecx
inc ecx
mov ebx, 0x5bab9d2
iretd
dec edi
imul esi, dword [eax + 0x4cd15009], 0xeeaf2054
insb byte es:[edi], dx
push es
push ss
sub ecx, dword [ecx - 0x47]
or dword [ecx], eax
invalid
aas
fmul dword [ecx]
mov ebx, 0xaa2cebc2
jmp 0xb0196312
mov dword [ecx], edx
lea esp, [ecx + 0x69a00979]
inc edx
sub bl, bh
xchg dword [eax + ecx*2], esi
dec edi
pop ebx
rcr byte [edi + 0x71], 0xae
cmp byte [edi + 0x2c], ah
inc edi
pop ecx
cdq
pop eax
jns 0x436caa
insd dword es:[edi], dx
dec edx
fsub st(0), st(0)
or dword cs:[edx - 0x4e3420c8], edi
adc cl, dl
pushfd
dec esi
hlt
lds edx, [ecx + 0x3e]
shl dword [edx + esi - 0x20], 1
xor ah, al
jo 0x436c15
leave
test byte [eax], dl
clc
inc ecx
daa
jbe 0x436c48
rcl byte [ecx]
dec ecx
fild dword [esi + ecx*2 - 0x3a244fc5]
pop edx
and eax, 0x2660b330
mov esp, 0x7c5ee9e1
mov bl, 0x60
mov esp, 0x7c5ee9e1
pop esp
jns 0x436c8c
das
or edx, edx
rol dword [ecx], 1
and eax, 0x37a572d7
cwde
loop 0x436c60
sbb eax, eax
mov ecx, 0x410fc6a8
movsd dword es:[edi], dword [esi]
ljmp 0x915c
popfd
or byte [eax], cl
adc eax, 0x70f61728
sbb ch, byte [eax - 0x63]
ret 0x88a1
aas
mov eax, 0x2515a849
dec ebx
ret
sub dword [ecx + 0x62747be3], eax
xchg ecx, eax
mov edi, 0xc8d083e6
xchg eax, ebp
fdivr qword [esi - 0x62]
mov ds, ecx
dec ecx
out dx, al
sar byte es:[ecx], 1
lodsb al, byte [esi]
or byte [ebx + 0x57], bl
adc eax, 0x33c6f2b9
push ds
mov edi, 0xa9478887
cmp cl, byte [ebx + 0x1acdcfa8]
mov al, byte [0xff80e240]
inc edx
lodsd eax, dword [esi]
xlatb
or cl, ch
push esp
sub al, 1
cmp byte [edx], dl
sub al, 0x1c
out 0x63, al
pop es
retf 0xd4c0