Function at 0x428841
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x34]
mov dword [eax + 0x3cc], 0xaedebcad
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x324]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 8]
mov ecx, dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [eax + 0x298], ecx
cmp dword [ebp - 4], 1
jne 0x428eff
mov edx, dword [ebp + 8]
cmp dword [edx + 0x2b8], 0
je 0x428eff
mov eax, dword [ebp + 8]
mov dword [eax + 0x1ec], 0
jmp 0x4288e3
add dword [eax], eax
add byte [ebx - 0x6e74f7b3], cl
or al, 3
add byte [ebx + eax*4 + 0x45], al
add dword [eax + 0x48894745], ebp
or al, 0xa8
add byte [edx - 0x75], cl
dec ebx
or byte [eax + 0x4e024d91], ch
add byte [eax + 0x518b50c2], ch
or byte [eax + 0x54025390], ch
add byte [eax + 0x5783564d], ch
in al, dx
test al, 0
pop ecx
add al, 0x5a
mov edx, dword [ecx + 0x4400030c]
add dword [ebp + 1], 0xffffffa8
inc ebp
inc edi
mov dword [eax + 0xc], ecx
test al, 0
dec edx
mov ecx, dword [ebx + 8]
test al, 0x91
dec ebp
add cl, byte [esi]
test al, 0xc2
push eax
mov edx, dword [ecx + 8]
test al, 0x90
nop
push ebx
add dl, byte [eax + eax - 0x58]
dec ebp
test al, 0x4d
push esi
adc dword [edi - 0x14], 0xffffffa8
add byte [ecx + 4], bl
pop edx
pop ebx
test al, 0x55
pop esp
mov ebx, dword [ebp + 8]
test al, 0x8a
pop edi
add esp, dword [eax]
test al, 0x48
bound esi, qword [ebx + 0x63]
mov ebp, dword [eax + 0x66826508]
add dword [eax + 0x694d6800], ebp
xor ebp, dword [eax + 0x6c016b8a]
add ch, byte [eax + 0x6f456e00]
mov ebp, dword [eax + 0x7200710c]
mov ebp, dword [eax + 0x75807408]
add ebp, dword [eax + 0x78db7700]
pop esp
test al, 2
jp 0x4288de
jnp 0x4288bc
test al, 8
jge 0x4288b6
jle 0x428939
test al, 0
or byte [ebp - 0x7f], 0x8b
test al, 0x3c
add dword [eax], 0xffffff84
mov byte [eax - 0x78a579f8], ch
jmp [eax - 0x75f77675]
mov eax, 0xb8a11155
adc dword [eax - 0x477def00], edi
adc dword [eax - 0x47b2ef00], edi
adc dword [eax - 0x47ffeef0], edi
adc dword [eax - 0x4710ee04], edi
adc dword [eax - 0x4703ee75], edi
adc dword [eax - 0x4707ee75], edi
adc dword [eax - 0x4703ee77], edi
adc dword [eax - 0x4774ee13], edi
adc dword [eax - 0x4774eeab], edi
adc dword [eax - 0x4774ef00], edi
adc dword [eax - 0x47fdee6f], edi
adc dword [eax - 0x4774eeb0], edi
adc dword [eax - 0x47fdee70], edi
adc dword [eax - 0x4774eeb3], edi
adc dword [eax - 0x47fdee7e], edi
adc dword [eax - 0x47fcee7f], edi
adc dword [eax - 0x47ffeefc], edi
adc dword [eax - 0x47efee98], edi
adc dword [eax - 0x4774eeb3], edi
adc dword [eax - 0x47adef00], edi
adc dword [eax - 0xffee20], edi
add byte [ecx], dl
mov edi, dword [eax + 0x1191b811]
add bh, byte [eax + 0x1150b811]
mov edi, dword [eax + 0x1190b811]
add bh, byte [eax + 0x114db811]
mov edi, dword [eax + 0x1182b811]
add bh, byte [eax + 0x1181b811]
add edi, dword [eax + 0x1104b811]
add byte [eax + 0x1168b811], bh
adc byte [eax + 0x114db811], bh
mov edi, dword [eax + 0x1100b811]
push edx
mov eax, 0x11e0b811
add bh, bh
adc eax, sym.imp.KERNEL32.dll_GetLastError
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 5
jne 0x428fc5
push 0x45b
push 0x1000
push 0xfffa
push 0
xchg byte [ebx + edi*4 - 0x79783699], bl
pushfd
out 0x67, eax
leave
xchg dword [edx], edx
aam 0x8f
adc byte [eax], cl
jae 0x428f3c
xchg dword [edi + 0x4e8fdc12], eax
or dword [ebx - 0x21787876], edx
xchg dword [edi + 0x129c7287], eax
int3
adc cl, ah
invalid