Function at 0x534032
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x53404f
cmp dword [ebx + 0x2c], 0
jne 0x534054
mov edi, ebx
mov dword [ebp + 0xc], edi
cmp dword [edi + 0x1c], ebx
je 0x53405c
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0x40
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x18], 0
mov dword [ebx + 0x2e4], 0
mov dword [ebx + 0x2e8], 0
mov dword [ebp - 0x10], 0x40
call fcn.00530812
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
test esi, esi
jne 0x5340b2
push 0x660558
call fcn.00532ef2
add esp, 4
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x3c]
push edi
push ebx
mov dword [ebp - 4], esi
call eax
add esp, 8
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x2f0]
push ebx
call eax
mov edi, dword [ebp + 8]
add esp, 4
mov dword [ebp - 0x1c], eax
cmp esi, edi
jbe 0x5341f0
cmp eax, 0x3c
je 0x5340ea
cmp eax, 0xffffffff
jne 0x5341f9
mov edi, dword [ebp - 0x14]
mov byte [esi], 0
cmp edi, 2
je 0x5340fa
cmp edi, 0xffffffff
jne 0x534108
push dword [ebp + 8]
call fcn.00532272
add esp, 4
mov dword [ebp - 4], eax
push dword [ebp + 8]
xor esi, esi
call fcn.00531622
add esp, 4
test eax, eax
je 0x5341df
mov eax, edi
sub eax, 1
je 0x53418d
sub eax, 1
je 0x534171
sub eax, 1
jne 0x5341df
cmp dword [ebx + 0x44], esi
je 0x5347df
mov edi, dword [ebp - 8]
mov dword [edi + 0x18], 3
push dword [ebp + 8]
mov eax, dword [ebx + 0x44]
push edi
push ebx
call eax
add esp, 0xc
test eax, eax
jne 0x5341df
push dword [edi]
push dword [ebp + 8]
push 0x6605a0
call fcn.00532ef2
add esp, 0xc
jmp 0x53491e
mov edi, dword [ebp - 8]
push 1
mov dword [edi + 0x18], 2
push dword [ebp + 8]
push edi
call fcn.00535912
add esp, 0xc
test eax, eax
jmp 0x5341d9
cmp dword [ebx + 0x2e8], esi
je 0x5341c4
push dword [ebp + 8]
call fcn.005318a2
mov edi, dword [ebp - 8]
add esp, 4
cmp byte [eax], 0
je 0x5341c7
cmp dword [edi + 0x18], esi
jne 0x5341c7
mov dword [edi + 0x18], 1
push dword [ebp + 8]
push edi
call fcn.00533d82
add esp, 8
test eax, eax
jmp 0x5341d9
mov edi, dword [ebp - 8]
push dword [ebp + 8]
push 0
push edi
call fcn.00533d22
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5347f1
mov eax, dword [ebp - 0xc]
test eax, eax
mov edi, dword [ebp + 8]
cmove eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0xffffffff
je 0x5348f0
cmp eax, 0x3c
jne 0x5347a0
mov eax, dword [ebx + 0x2f0]
push ebx
mov dword [ebp - 4], edi
call eax
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
je 0x53432b
nop word [eax + eax]
push esi
call fcn.00532842
add esp, 4
test eax, eax
jne 0x53432b
cmp esi, 0x3e
je 0x53432b
cmp esi, 0x2f
jne 0x53424c
cmp edi, dword [ebp + 8]
ja 0x53432b
jmp 0x5342ac
cmp esi, 0x3c
je 0x534809
cmp esi, 0x26
jne 0x534294
push dword [ebp - 8]
push ebx
call fcn.00534de2
add esp, 8
cmp eax, 0xffffffff
je 0x53491e
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 4]
push ecx
push eax
call fcn.00533f12
add esp, 0x10
test eax, eax
je 0x53491e
mov edi, dword [ebp - 4]
jmp 0x534314
cmp esi, 0x30
jge 0x5342ac
cmp esi, 0x21
je 0x5342ac
cmp esi, 0x2d
je 0x5342ac
cmp esi, 0x2e
jne 0x53491e
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 4]
push eax
push esi
call fcn.00533f12
add esp, 0x10
test eax, eax
je 0x53491e
mov edi, dword [ebp - 4]
mov eax, edi
mov ecx, dword [ebp + 8]
sub eax, ecx
cmp eax, 1
jne 0x5342dd
cmp byte [ecx], 0x3f
je 0x53432b
cmp eax, 3
jne 0x5342f8
push eax
push 0x660610
push ecx
call 0x730d82
add esp, 0xc
test eax, eax
je 0x53432b
mov ecx, dword [ebp + 8]
mov eax, edi
sub eax, ecx
cmp eax, 8
jne 0x534314
push eax
push 0x6602cc
push ecx
call 0x730d82
add esp, 0xc
test eax, eax
je 0x53432b
mov eax, dword [ebx + 0x2f0]
push ebx
call eax
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
jne 0x534222
mov byte [edi], 0
mov ecx, 0x660610
mov eax, dword [ebp + 8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x534356
test dl, dl
je 0x534352
test al, 0xc5
pop edx
invalid
jb 0x534397
or byte [eax + 0x40], ch
inc eax
ja 0x5343ce
add al, 0x26
adc eax, 0x35135192
cmc
jecxz 0x5343c5
cmpsb byte [esi], byte es:[edi]
push edx
stosd dword es:[edi], eax
pop ss
pop ss
mov ah, 0x55
mov ebp, 0x82cab0a2
jp 0x5343e3
pushal
retf 0x92fb
mov bh, 0x30
sahf
cmp eax, 0x96d3f87c
and eax, 0xc54464e2
arpl sp, sp
ret
and al, 0x88
loope 0x534439
sub esp, dword [edi - 0x7f]
dec dword [esi + 0x30e7dbb2]
mov dl, 0xdb
out 0x30, eax
pop es
jno 0x5343f7
and byte [ebx], ah
push esp
shl eax, 0x71
test dword [ebx + 0x7a], 0xcb5709e1
and al, 0xd2
push ss
rcl byte [esi], cl
cli
adc cl, bl
adc cl, ch
cmc
add eax, 0xdbbdb190
xchg ebp, eax
adc dword [eax - 0x38], ebx
cwde
jne 0x534468
jo 0x5343e6
in eax, dx
push ebp
retf
add byte [ebx + edx*2], bl
int 0xdc
mov edi, 0x27d74610
jecxz 0x534473
and byte [edi], 0x96
sbb dh, byte [ebx]
outsd dx, dword [esi]
and eax, edx
sbb esp, dword [eax + 0x6098d4d8]
loopne 0x534498
cmp dword [ebp + 0x21], eax
pop ds
sbb al, 0x24
xor dh, byte [esi + eax]
and esp, dword [si]
jecxz 0x534436
mov ebp, 0x772cf1a4
cmpsb byte [esi], byte es:[edi]
xor dword [esi*4 + 0x217e5d4a], esp
push esi
cmp dword [edx + 0x19], esi
mov esp, 0x44634e1b
lodsb al, byte [esi]
sbb dword [ebx + ebx - 0x53bb9cb2], edi
pop esp
pushal
xor ch, byte [ebp + 0x13]
hlt
xor al, 0xe6
sti
std
sub byte [eax - 0x475a0f01], al
sbb eax, 0xde30e243
xlatb
mov al, 0xe7
xor dword [edi + esi - 0x4f48693e], 0x23
push cs
iretd
add dl, byte [ecx + 0x1d62e4a1]
cli
mov dl, 0x23
mov esi, 0xd0b39bc4
mov bh, 0x68
mov bl, 0x46
fdivr dword [edi - 0x2e]
inc esp
or al, 0xe3
add al, 0xf1
push ecx
dec ecx
xor al, byte [ecx]
xor dword [ecx + 0x1233af69], eax
shr byte [edi], 0xe2
stosb byte es:[edi], al
pushfd
mov ah, 0xb0
fcomp qword [ebx + 0x27720198]
sub dword [ebp - 0x54], ebp
jp 0x5347b0
add bh, byte [ecx]
in al, 0x43
dec esi
push es
call 0x9e3b395
test byte [0xab3aa1c2], cl
xor byte [edi - 0x2a], 0x90
rol byte [ecx - 0x59], 0xcc
jecxz 0x53481f
ret 0x3aa1
int3
adc dh, byte [eax]
push eax
invalid
add dword [eax - 0x3f5592cf], 0xa20c72dd
dec esi
salc
pop ebx
add al, 0xef
xor bh, byte [esi + 0x26]
imul esi, dword [edx - 0x5a03fc89], 0x18d3ec44
cld
movsd dword es:[edi], dword [esi]
inc esp
in al, dx
rcr dword [eax], cl
jbe 0x534851
imul dl
inc esp
jl 0x5347df
and eax, dword [edi]
jmp 0x534837
push ss
push esp
mov ah, 0xbe
dec ebx
fcomp st(1)
sbb dword [0xf9e1eb34], eax
adc al, byte [edi]
jecxz 0x534827
dec esp
shl byte [eax + 3], 0xaa
jnp 0x5347e6
push ebp
shl dword [eax - 0x5e], cl
outsd dx, dword [esi]
xor eax, 0x919b0c14
pushal
mov byte [0xc14356f], al
wait
xchg ecx, eax
adc al, 0x2d
jecxz 0x53486b
invalid
stosw word es:[edi], ax
add dword [edx + edx*8 + 0x681c4d67], ebp
dec ebp
sbb al, 0x68
sub al, 0x86
and eax, 0x8776d93
xor dword [ebx], eax
cmp dword cs:[esi - 0x78b4d042], 0xffffff9f
jne 0x534870
out 0xaa, al
cmp eax, 0x7c326fc5
cmpsb byte [esi], byte es:[edi]
mov ah, 0x60
inc ebp
invalid
add dword [ecx], 0x2e
inc ebx
push ebx
jge 0x53493a
movsd dword es:[edi], dword [esi]
rcr byte [esi + 0x36], 1
mov eax, 0x3691bda2
pop esi
mov eax, 0x3691bda2
mul byte [eax + 0x7b]
or eax, 0xb54ffd12
lahf
push eax
mov al, 0x15
pop ds
mov eax, dword [0xf89aadbe]
cmp al, 0x1c
dec edx
movsd dword es:[edi], dword [esi]
push 0xffffffffffffffbc
mov ah, 0xd5
jae 0x5348f9
pop edx
add eax, 0x73434f17
cmc
pop ss
dec edi
inc ebx
jae 0x534918
test dword [ecx - 6], edx
pop ebx
push ds
inc ebx
push esi
xor dl, cl
cmp dword [edi - 0x42], 0x8f036448
cmp eax, 0x54257dff
dec ebx
xchg edx, eax
test byte [ebp - 0x79b366ff], al
push eax
invalid