Function at 0x53406d
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 0x53408a
cmp dword [ebx + 0x2c], 0
jne 0x53408f
mov edi, ebx
mov dword [ebp + 0xc], edi
cmp dword [edi + 0x1c], ebx
je 0x534097
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.0053084d
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
test esi, esi
jne 0x5340ed
push 0x660558
call fcn.00532f2d
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 0x53422b
cmp eax, 0x3c
je 0x534125
cmp eax, 0xffffffff
jne 0x534234
mov edi, dword [ebp - 0x14]
mov byte [esi], 0
cmp edi, 2
je 0x534135
cmp edi, 0xffffffff
jne 0x534143
push dword [ebp + 8]
call fcn.005322ad
add esp, 4
mov dword [ebp - 4], eax
push dword [ebp + 8]
xor esi, esi
call fcn.0053165d
add esp, 4
test eax, eax
je 0x53421a
mov eax, edi
sub eax, 1
je 0x5341c8
sub eax, 1
je 0x5341ac
sub eax, 1
jne 0x53421a
cmp dword [ebx + 0x44], esi
je 0x53481a
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 0x53421a
push dword [edi]
push dword [ebp + 8]
push 0x6605a0
call fcn.00532f2d
add esp, 0xc
jmp 0x534959
mov edi, dword [ebp - 8]
push 1
mov dword [edi + 0x18], 2
push dword [ebp + 8]
push edi
call fcn.0053594d
add esp, 0xc
test eax, eax
jmp 0x534214
cmp dword [ebx + 0x2e8], esi
je 0x5341ff
push dword [ebp + 8]
call fcn.005318dd
mov edi, dword [ebp - 8]
add esp, 4
cmp byte [eax], 0
je 0x534202
cmp dword [edi + 0x18], esi
jne 0x534202
mov dword [edi + 0x18], 1
push dword [ebp + 8]
push edi
call fcn.00533dbd
add esp, 8
test eax, eax
jmp 0x534214
mov edi, dword [ebp - 8]
push dword [ebp + 8]
push 0
push edi
call fcn.00533d5d
mov esi, eax
add esp, 0xc
test esi, esi
je 0x53482c
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 0x53492b
cmp eax, 0x3c
jne 0x5347db
mov eax, dword [ebx + 0x2f0]
push ebx
mov dword [ebp - 4], edi
call eax
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
je 0x534366
nop word [eax + eax]
push esi
call fcn.0053287d
add esp, 4
test eax, eax
jne 0x534366
cmp esi, 0x3e
je 0x534366
cmp esi, 0x2f
jne 0x534287
cmp edi, dword [ebp + 8]
ja 0x534366
jmp 0x5342e7
cmp esi, 0x3c
je 0x534844
cmp esi, 0x26
jne 0x5342cf
push dword [ebp - 8]
push ebx
call fcn.00534e1d
add esp, 8
cmp eax, 0xffffffff
je 0x534959
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 4]
push ecx
push eax
call fcn.00533f4d
add esp, 0x10
test eax, eax
je 0x534959
mov edi, dword [ebp - 4]
jmp 0x53434f
cmp esi, 0x30
jge 0x5342e7
cmp esi, 0x21
je 0x5342e7
cmp esi, 0x2d
je 0x5342e7
cmp esi, 0x2e
jne 0x534959
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 4]
push eax
push esi
call fcn.00533f4d
add esp, 0x10
test eax, eax
je 0x534959
mov edi, dword [ebp - 4]
mov eax, edi
mov ecx, dword [ebp + 8]
sub eax, ecx
cmp eax, 1
jne 0x534318
cmp byte [ecx], 0x3f
je 0x534366
cmp eax, 3
jne 0x534333
push eax
push 0x660610
push ecx
call 0x730dbd
add esp, 0xc
test eax, eax
je 0x534366
mov cl, 0xbe
inc ebx
mov esi, 0x90cba443
movsb byte es:[edi], byte [esi]
retf
invalid
lcall 0x1138, 0x6b3e6a4d
adc ebx, dword [ecx + 0xc]
insb byte es:[edi], dx
jg 0x53438a
outsb dx, byte [esi]
mov ebp, dword [edx]
or cl, byte [esi - 0x14]
dec esi
in al, dx
cwde
jnp 0x534331
dec ebx
ror byte [esi], 1
insb byte es:[edi], dx
lodsd eax, dword [esi]
movsb byte es:[edi], byte cs:[esi]
fldcw word [ecx + 0x6b019bb1]
sbb edx, ebx
or byte [ebx - 0x4072e5ec], 0x74
test eax, 0x18c90164
pop edi
jmp 0x5343ab
sbb cl, byte [ebp + 0x64a974bf]
add ecx, ecx
sbb byte [edi - 0x15], bl
cmp dword [ebx + 0x7f940ca4], edi
sub ch, byte [edx - 1]
mov cl, 0xe4
cmpsb byte [esi], byte es:[edi]
cmp edi, dword [esi]
in al, dx
loop 0x534316
cmp bl, byte [edi + ebx*8 - 0x12]
push ecx
int3
and al, 7
loope 0x534336
invalid
jp 0x53433e
jg 0x534355
pushfd
jle 0x5343e4
sahf
retf 0x915f
shl ebx, 1
insb byte es:[edi], dx
or esi, esp
shr byte cs:[ecx + 0x6b], cl
inc ecx
pop ecx
or al, 0xa9
mov byte [0x3c62c253], al
iretd
stosd dword es:[edi], eax
scasb al, byte es:[edi]
adc ebp, dword [edx - 0x34fb3ec3]
aas
adc eax, 0x488a1d98
xor ch, byte [ebx]
cmp bl, byte [ecx]
dec edx
cwde
adc dh, byte [esi - 0x2677f4b8]
push esp
mov dh, 0x48
or ecx, dword [eax - 0x2e04ab27]
test edi, ecx
test eax, 0x18e382a7
sti
rol dword [ebp - 0x7d585631], 1
jecxz 0x5347d9
or dword [esi], edi
push edx
je 0x53479d
arpl word [ebx + 0x38fd421b], sp
push edi
push ds
pop ds
xchg ebx, eax
test al, 0x10
mov dword [edx - 0x63], esi
jbe 0x5347b2
fisub dword [ebx]
rcr byte [ecx - 0x261430f4], 1
cmp bh, byte [esi + 0xb50fab7]
dec ebx
dec ecx
test ebx, eax
cld
cmp esi, dword [edi + 0x1e]
iretd
or al, 0xcf
jmp 0x5347b8
test al, 1
or eax, 0x3ff38d33
enter 0x7c3a, 0xfffffffffffffff2
jl 0x534813
sub dword [esi + ebx*2 + 0x42], edi
mov edx, 0xcf4d6d89
cmpsd dword [esi], dword es:[edi]
xor cl, al
mov byte [0x902d7e00], al
clc
shl dword [edx - 0x6fd28200], 0xf8
or byte [ebx], 0x7c
cli
movsb byte es:[edi], byte [esi]
push ebp
mov ebx, 0xb37879
mov gs, word [esi]
retf 0xbb1b
sub al, 0x6f
adc eax, 0x346f88e0
cwde
pop ss
mov esi, 0xfb6c45fb
inc esi
pop ds
retf
cdq
inc ebp
lcall 0x5a06, 0x4a38377a
fmulp st(1)
and eax, 0xc6bbc32f
mov byte [ebp - 0x11], cl
sbb esp, dword [edx + 0x76]
or eax, dword [esi + 0x2b86ce56]
test eax, 0xa7da066e
salc
add dword [ebx - 0x21ac98db], 0x73
invalid
jmp 0xe26c47cd
jg 0x5348de
insd dword es:[edi], dx
arpl word [eax], si
xchg ecx, eax
outsb dx, byte [esi]
dec eax
inc eax
in eax, 0x8f
imul ebp, dword [esi - 0x45], 0xe
xor al, 0xd1
xor edi, dword [edi + 0x4f]
insd dword es:[edi], dx
cmp eax, 0x15daee7d
cmpsd dword [esi], dword es:[edi]
cld
or cl, byte [ebx + 0x5ff7a63e]
mov ebp, 0xb54e229c
mov ecx, 0xb06ca63a
test byte [0x675d9bc0], 0x16
adc dword [edi + 0x3a5630fb], esp
std
pop ebp
sbb bh, ah
xlatb
idiv dword [edi + 0x34]
dec ebx
pop edx
inc ecx
mov ch, 0x8e
xor dword [esi + 0x52170a32], ebp
outsb dx, byte [esi]
pushal
mov al, 0xd
add ebp, dword [edx]
sbb al, 0x5a
pcmpgtd mm7, mm0
insd dword es:[edi], dx
and edx, dword [esi]
stc
ror dl, cl
cmpsd dword [esi], dword es:[edi]
mov esi, 0x49a6f1a4
outsb dx, byte [esi]
sti
add al, 0xf0
cmp ebx, dword [edx + ebp*8 + 0x2aaea062]
invalid