Function at 0x42ed00
Capabilities:
Encode data using xor

Disassembly:
cmp byte [ecx], 0x43
add byte [eax + 0x21], dl
inc edx
add byte [eax + 0x21], bl
inc edx
add byte [eax + 0x42], ch
add byte [eax - 0x7bffbcf0], bl
cwde
adc byte [ebx], al
test byte [eax], dl
inc ebx
add byte [eax + 0xf00430f], bh
push esp
dec ebp
je 0x42e89b
imul bp, word [ebp + 0x43], 0x6e61
jbe 0x42e8a4
jae 0x42e88d
call 0xf49e88c
push esp
dec ebp
je 0x42e8b0
imul bp, word [ebp + 0x43], 0x6e61
jbe 0x42e8b9
jae 0x42e876
call 0xe482e8a1
inc edx
add byte [eax + eax], al
or byte [edi + 0x72], al
popal
jo 0x42e8d1
imul esp, dword [ebx + 0x73], 0xc08b0000
mov esp, 0x42e8
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], 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
shr al, 0x42
add byte [eax], cl
add byte [eax], al
add byte [ecx + edx + 0x40], cl
add byte [eax], al
add al, al
call fcn.004ae8d8
add byte [eax], al
dec esp
adc dword [eax], eax
je 0x42e8de
add byte [eax + eax*2 + 0x40], dh
inc eax
add byte [eax - 0x7bffbfc0], al
inc eax
inc eax
test byte [eax + 0x40], al
add byte [eax + 0x7c004040], cl
inc eax
inc eax
add ah, al
cmp eax, 0x3de00040
les edi, [0x3de00040]
inc eax
add byte [esi + edi], bl
inc eax
inc eax
add byte [eax + esi], ch
inc eax
add byte [esp + edx*2], cl
push ebx
push 0x64657261
dec ecx
insd dword es:[edi], dx
popal
lea eax, gs:[bx + si]
sbb al, 0xe9
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 0x66e938
jmp 0x42e918
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 cl, ch
inc edx
add byte [eax + eax], ah
add byte [eax], al
jo 0x42e8e2
inc edx
add byte [eax + eax*2 + 0x40], dh
add byte [eax - 0x7bffbfc0], al
inc eax
inc eax
add byte [eax + 0x7c004040], cl
inc eax
inc eax
add ah, al
cmp eax, 0x3de00040
inc eax
add byte [eax + 0x36], bl
inc ebx
pop eax
inc ebx
add byte [esi + esi + 0x540e0043], dl
dec ebp
je 0x42e987
imul bp, word [ebp + 0x49], 0x616d
nop
jl 0x42e91b
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 al, dh
jmp 0x42e988
add byte [eax - 0x13ffbdde], ah
mov al, byte [0xec004222]
and al, 0x43
add al, bl
cmp al, byte [ebx]
test al, 0x25
inc ebx
add byte [eax + 0x3c], dl
inc ebx
add byte [eax + 0x3c], ch
inc ebx
add ah, bh
cmp al, 0x43
add al, bh
inc ebx
add byte [eax + 0x6800433d], cl
inc ebx
add byte [edx + eax*2 + 0x43], bl
add ah, bl
daa
inc ebx
add byte [eax + 0x43], cl
inc ebx
add byte [ebx + eax*2 + 0x43], cl
add byte [esp + eax*2 + 0x39cc0043], ah
inc ebx
add ah, bh
inc ebx
add byte [ecx + eax*2], ah
inc ebx
add ah, ch
cmp eax, 0x41b00043
inc ebx
add ah, bh
inc esi
inc ebx
add byte [eax + 0x9004347], al
push esp
dec ebp
je 0x42ea47
imul bp, word [ebp - 0x75], 0xf0c0
jmp 0x949ea34
add byte [eax + 0x7c004040], cl
inc eax
inc eax
add ah, al
cmp eax, 0x3de00040
inc eax
add byte [ebx + ecx*2 + 0x4c080043], ch
inc ebx
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
mov esp, 0x42ea
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], bh
jmp 0x42eac5
push esi
inc ebx
add byte [eax - 0x57ffbdde], ah
pop eax
inc ebx
add byte [eax], ch
pop ecx
inc ebx
add byte [eax - 0x23ffbcdb], ch
pop ebx
inc ebx
add byte [eax - 0x2fffbca4], dl
pop esp
inc ebx
add al, bh
inc ebx
add byte [eax], bl
pop esi
inc ebx
add byte [ebx + 0x43], al
add byte [eax + 0x6b], al
inc ebx
add byte [esp + ebp*2], dl
inc ebx
add ah, dh
daa
inc ebx
add byte [eax - 0xbffbc92], ah
outsb dx, byte [esi]
inc ebx
add byte [eax], dh
push esi
inc ebx
add ah, bh
inc ebx
add byte [edi + 0x61c00043], al
inc ebx
add byte [edx + esi*2], cl
inc ebx
add byte [ecx], bh
inc ebx
add byte [edx + esi*2], dl
inc ebx
add byte [eax + 0x5c], al
inc ebx
add byte [eax + 0x800435c], ah
push 0x43
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x42eb3870
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x42eabc70
add byte [esi + 0x42], dl
or byte [edi + 0x72], al
popal
jo 0x42ebb9
imul esp, dword [ebx + 0x73], 0xc08b0000
movsb byte es:[edi], byte [esi]
jmp 0x42eb9d
cmp eax, 0x72b40040
inc ebx
add ah, ah
jb 0x42ebea
add byte [edx], cl
push esp
dec ecx
arpl word [edi + 0x6e], bp
dec ecx
insd dword es:[edi], dx
popal
nop
add ah, 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 - 0x14], dh
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 [esp + ebp*8 + 0x42], ah
add byte [eax + eax], dh
add byte [eax], al
shl ch, 1
inc edx
add byte [eax + eax*2 + 0x40], dh
add byte [eax], dl
and al, byte [edx]
test byte [eax + 0x40], al
inc eax
add byte [eax + 0x7c004040], cl
inc eax
inc eax
add ah, al
cmp eax, 0x3de00040
inc eax
add byte [eax + 0x73], dl
inc ebx
add byte [eax + 0x21], dl
inc edx
add byte [ebp + 0x43], bl
add byte [eax - 0x5fffbc8d], al
and al, byte [edx]
in al, dx
and al, 0x43
add al, ah
jae 0x42ec5a
add byte [eax + 0x20004325], ch
je 0x42ec62
add byte [esp + esi*2 + 0x43], cl
add ah, dh
inc ebx
add al, bh
inc ebx
add byte [eax + 0x74], ah
inc ebx
add byte [eax + 0x27], bh
inc ebx
add ah, ah
jbe 0x42ec7a
add ah, bl
daa
inc ebx
add ah, bh
jbe 0x42ec82
add byte [eax], al
ja 0x42ec86
add byte [eax + ebp], al
inc ebx
add ah, bh
jb 0x42ec8e
add ah, bh
inc ebx
add byte [edi + 0x75a00043], al
inc ebx
add byte [eax], bl
ja 0x42ec9e
inc ebx
add byte [edi + esi*2 + 0x43], al
add byte [eax + 0x77], bl
inc ebx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
jo 0x42ec5a
inc edx
add byte [edi], al
add eax, 0x6f634954
outsb dx, byte [esi]
add ah, ch
inc edx
add byte [esi + 0x42], dl
or byte [edi + 0x72], al
popal
inc edi
jb 0x42ece6
jo 0x42ecef
push 0x736369
imul esp, dword [ebx + 0x73], 0xc0850000
add byte [ebp + 0x3b0e74c0], al
add eax, 0x98dc50
je 0x42ec9e
cmp eax, dword [0x98dc50]
je 0x42ec9e
push eax
call sub.gdi32.dll_DeleteObject
ret
inc eax
add byte [eax - 0x13], dl
inc edx
add byte [eax], dl
push esp
push edx
jae 0x42ed61
jne 0x42ed66
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x42ec8b
inc eax
add byte [ecx + 0x31c289d1], cl
mov ecx, edx
mov edx, eax
xor eax, eax
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0x42ed06
ret
invalid
jle 0x42ed6f
mov eax, esi
call fcn.004041e0
pop esi
pop ebx
ret
add byte [edi + 0x5e], bl
ret