Function at 0x42ecf0
Capabilities:
Encode data using xor

Disassembly:
cmp byte [edx], bh
inc ebx
add byte [eax + 0xc004204], bh
sub byte [ebx], al
push 0x800433a
push es
inc edx
add byte [edi + 0x3afc0043], bl
inc ebx
add byte [eax + 0x28], bl
inc ebx
add byte [esp + edi + 0x43], dh
add byte [esp + edi + 0x3d200043], cl
inc ebx
add byte [eax - 0x53ffbcd7], ch
cmp eax, 0x3e8c0043
inc ebx
add byte [edx + eax*2 + 0x2a940043], bh
inc ebx
add byte [eax - 0x53ffbcbd], ch
inc ebx
inc ebx
add byte [eax*2 + 0x39f00043], al
inc ebx
add byte [eax + 0x48004329], dh
inc ecx
inc ebx
add byte [eax], dl
inc ebx
add byte [eax], dl
inc edx
inc ebx
add byte [eax + 0x47], bl
inc ebx
add ah, bl
inc edi
inc ebx
add byte [eax + ecx*2], ch
inc ebx
add byte [ecx], cl
push esp
dec ebp
je 0x42e9bb
imul bp, word [ebp - 0x75], 0x64c0
jmp 0x949e9a8
add byte [eax - 0x5bffbfb7], dh
dec ecx
inc eax
add ah, ch
inc esi
inc eax
add byte [eax], cl
inc edi
inc eax
add byte [esp + ecx*2 + 0x4d100043], dh
inc ebx
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
xor dl, ch
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x42ea], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx + ebp*8 + 0x3c0042], ah
add byte [eax], al
cmp al, 0xe5
inc edx
add byte [ecx + ecx*2 + 0x5780040], bl
inc edx
add byte [ecx + ecx*2 + 0x49b00040], ch
inc eax
add byte [ecx + ecx*2 + 0x46ec0040], ah
inc eax
add byte [eax], cl
inc edi
inc eax
add byte [eax - 0x47ffbca9], ah
add al, 0x42
add byte [eax + ebp], cl
inc ebx
add ah, bl
push edi
inc ebx
add byte [eax], cl
push es
inc edx
add byte [ecx + ebx*2 + 0x5a3c0043], bh
inc ebx
add byte [eax + 0x28], bl
inc ebx
add al, dh
pop esp
inc ebx
add byte [ebp + ebx*2 + 0x5de40043], ah
inc ebx
add byte [eax + 0x40004329], ch
pop esi
inc ebx
add byte [eax - 0x77ffbc9d], al
imul eax, dword [ebx], 0x20
insb byte es:[edi], dx
inc ebx
add byte [edx + ebp + 0x6d440043], dh
inc ebx
add byte [eax + 0x6d], ah
inc ebx
add byte [eax], bh
push edi
inc ebx
add byte [eax + 0x3c004329], dh
sub al, byte [ebx]
in al, dx
popal
inc ebx
add byte [eax + 0x70], bh
inc ebx
add byte [eax + 0x61], ch
inc ebx
add byte [eax + 0x20004370], al
jno 0x42eada
add byte [ebp + ebx*2 + 0x43], dl
add byte [ebp + ebx*2 + 0x6a4c0043], dh
inc ebx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x42eab070
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x42ea3070
add byte [esi], al
inc edx
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x42eb28
jo 0x42eb31
imul esp, dword [ebx + 0x73], 0xc08b0000
sbb al, 0xeb
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], ah
jmp 0x42eb35
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and bl, ch
inc edx
add byte [eax], bl
add byte [eax], al
add al, ah
out 0x42, eax
add byte [ecx + ecx*2 + 0x49a80040], bl
inc eax
add byte [ecx + ecx*2 + 0x49b00040], ch
inc eax
add byte [ecx + ecx*2 + 0x46ec0040], ah
inc eax
add byte [eax], cl
inc edi
inc eax
add byte [ecx + esi*2 + 0x71b40043], al
inc ebx
add byte [edx], cl
push esp
jno 0x42eb5e
add byte [ecx + esi*2 + 0x540a0043], dh
dec ecx
arpl word [edi + 0x6e], bp
dec ecx
insd dword es:[edi], dx
popal
nop
js 0x42eb19
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, ch
jmp 0x42eb81
inc edx
add byte [ecx + ecx*2 + 0x49b00040], ch
inc eax
add byte [ecx + ecx*2 + 0x46ec0040], ah
inc eax
add byte [eax], cl
inc edi
inc eax
add byte [eax], ah
jb 0x42ebba
add byte [eax + 0xc004204], bh
sub byte [ebx], al
push eax
jb 0x42ebc6
add byte [eax], cl
push es
inc edx
add byte [edi + 0x72b00043], bl
inc ebx
add byte [eax + 0x28], bl
inc ebx
add ah, dh
jb 0x42ebda
add byte [eax], ah
jae 0x42ebde
add byte [ecx + ebp + 0x29a80043], ah
inc ebx
add byte [ebx + esi*2], dh
inc ebx
add byte [eax], dh
sub al, byte [ebx]
xor al, 0x76
inc ebx
add byte [edx + ebp + 0x766c0043], dl
inc ebx
add byte [eax + 0x76], dh
inc ebx
add ah, al
sub al, byte [ebx]
int3
inc ebx
add byte [edx + ebp], bh
inc ebx
add byte [esp + esi*2 + 0x43], dh
add byte [eax - 0x4fffbc8a], cl
jbe 0x42ec1a
add ah, al
jbe 0x42ec1e
inc ebx
add byte [esi + esi*2 + 0x43], cl
inc ebx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
in al, dx
jmp 0x42ec2d
stosb byte es:[edi], al
push ebp
add byte [esi + eax + 0x50], dh
call sub.gdi32.dll_DeleteObject
ret
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax - 0x14], ch
inc edx
add byte [eax - 0x14], dh
inc edx
add byte [eax + eax], ah
add byte [eax], al
dec esp
adc dword [eax], eax
pushfd
dec ecx
inc eax
add byte [eax - 0x53ffbfb7], ch
dec ecx
inc eax
add byte [eax - 0x5bffbfb7], dh
dec ecx
inc eax
add ah, ch
inc esi
inc eax
add byte [eax], cl
inc edi
inc eax
add byte [eax - 0x13], al
inc edx
add byte [ecx], al
add bh, bh
call [edi + ebp*8 + 0x54100042]
push edx
jae 0x42ece5
jne 0x42ecea
arpl word [ebp + 0x4d], sp
dec ebp
popal
outsb dx, byte [esi]
popal
jb 0x42ec0f
inc eax
add al, dl
in al, dx
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, dl
in al, dx
inc edx
add al, bl
in al, dx
inc edx
add byte [eax + eax], ah
add byte [eax], al
sbb al, 0xec
inc edx
add byte [ecx + ecx*2 + 0x49a80040], bl
inc eax
add byte [ecx + ecx*2 + 0x49b00040], ch
inc eax
add byte [ecx + ecx*2 + 0x46ec0040], ah
inc eax
add byte [eax], cl
inc edi
inc eax
add byte [eax - 0x13], al
inc edx
add byte [ecx], al
add bh, bh
dec dword [eax + esi*8]
inc edx
add byte [0x75724254], dl
jae 0x42ed47
push edx
jae 0x42ed52
jne 0x42ed57
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x42ec7a
ror byte [ecx + 0x31c289d1], 0xc0
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0x42ecf6
ret
mov ebx, edx
mov esi, eax
lea eax, [esi + 8]
push eax
call sub.kernel32.dll_DeleteCriticalSection
test bl, bl
jle 0x42ed5f
std
inc dword [ebx + ebx*8 - 0x3974f882]
pop es
mov eax, esi
call fcn.00404b08
pop esi
pop ebx
ret