Function at 0x405c85
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 + 0x2cc], 0xaedebcad
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x258]
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 + 0x1cc], ecx
cmp dword [ebp - 4], 1
jne 0x406343
mov edx, dword [ebp + 8]
cmp dword [edx + 0x1ec], 0
je 0x406343
mov eax, dword [ebp + 8]
mov dword [eax + 0x124], 0
jmp 0x405d27
add dword [eax], eax
add byte [ebx - 0x6e74f7b3], cl
inc eax
add al, byte [eax]
inc esp
mov edx, dword [ecx + 0x44000240]
add dword [ebp + 1], 0xffffffa8
inc ebp
inc edi
mov dword [eax + 0x40], ecx
inc ebp
add dword [eax + 0x48894745], ebp
inc eax
test al, 0
dec edx
mov ecx, dword [ebx + 8]
test al, 0x91
dec ebp
add dword [esi], ecx
test al, 0xc2
push eax
mov edx, dword [ecx + 8]
test al, 0x90
nop
push ebx
add dword [eax + eax - 0x58], edx
dec ebp
test al, 0x4d
push esi
adc dword [edi + 0x24], 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 ah, byte [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 dword [eax + 0x6f456e00], ebp
mov ebp, dword [eax + 0x72007140]
mov ebp, dword [eax + 0x75807408]
add ch, byte [eax + 0x78db7700]
pop esp
test al, 2
jp 0x405d22
jnp 0x405d00
test al, 8
jge 0x405cfa
jle 0x405d7c
test al, 0
or byte [ebp - 0x7f], 0x8b
test al, 0x74
add dword [eax], 0xffffff84
mov byte [eax - 0x78a579f8], ch
jmp [eax - 0x75f77675]
add byte [eax - 0x57747eb3], al
je 0x405d07
add byte [eax + ecx*4 + 0x5a8608a8], al
xchg edi, edi
test al, 0x8b
mov dword [eax], ecx
mov al, byte [edx + 0x8c02a8]
lea eax, [eax]
test al, 0
pop dword [ebp - 0x70]
mov ebp, dword [eax - 0x6c6f6df8]
add ch, byte [eax - 0x69ae6b00]
push gs
xchg ebx, eax
cwde
add byte [ecx - 0x64f75775], bl
sbb byte [ecx + eax + 0x9e00a8], 0x9f
add byte [eax - 0x5db25ec1], ch
mov ebp, dword [eax - 0x5aff5bdc]
sub dword [eax - 0x57ba58ff], 0xffffff89
test al, 0x24
stosb byte es:[edi], al
add byte [ebx - 0x52f75775], ch
xchg ecx, eax
scasb al, byte es:[edi]
add ch, byte [eax - 0x4e3d5000]
mov ebp, dword [eax - 0x4b6f4cf8]
add ch, byte [eax - 0x48b24a00]
mov ebp, dword [eax - 0x45ff468c]
sub dword [eax - 0x42ba43ff], 0xffffff89
test al, 0x74
mov edi, 0xa88bc000
or dl, al
mov ecx, 0xa801c3
lds ecx, [edi]
invalid
mov eax, 0xb8a11155
adc dword [eax - 0x477def00], edi
adc dword [eax - 0x47b2ef00], edi
adc dword [eax - 0x47ffeeb8], edi
adc dword [eax - 0x4710ee04], edi
adc dword [eax - 0x4703ee75], edi
adc dword [eax - 0x47cfee75], edi
adc dword [eax - 0x4703ee77], edi
adc dword [eax - 0x4774ee13], edi
adc dword [eax - 0x4774eeab], edi
adc dword [eax - 0x4774ef00], edi
adc dword [eax - 0x47feee6f], edi
adc dword [eax - 0x4774eeb0], edi
adc dword [eax - 0x47fdee70], edi
adc dword [eax - 0x4774eeb3], edi
adc dword [eax - 0x47feee7e], edi
adc dword [eax - 0x47fdee7f], edi
adc dword [eax - 0x47ffeefc], edi
adc dword [eax - 0x47efee98], edi
adc dword [eax - 0x4774eeb3], edi
adc dword [eax - 0x47adef00], edi
adc dword [eax - 0xffee50], edi
adc eax, sym.imp.KERNEL32.dll_GetLastError
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 5
jne 0x406409
push 0x45b
push 0x1000
push 0xfffa
push 0
xchg byte [ebx + eax*8 - 0x797838c9], bl
pushfd
jmp 0x406426
adc cl, ah
invalid
xchg dword [edi - 0x65adf46a], eax
xchg dword [edi - 0x737cfbf6], eax
xchg esi, eax
or al, 0x48
lcall 0x128f, 0xd4128787
fmul qword [edi - 0x7754f7ee]
xchg dword [edi - 0x7638f63e], eax
xchg dword [edi - 0x65cff36a], eax
xchg dword [edi - 0x78787e11], eax
xchg dword [esi - 0x38c8d864], eax
xchg dword [edx], edx
aam 0x8f
adc bl, byte [edi + ebx*4 + 0x1087c738]
sbb byte [edi + 0x12878789], cl
int3