Function at 0x41ec94
Capabilities:
Encode data using xor

Disassembly:
add byte [esi + ebp], bh
inc edx
add byte [eax + 0x4c], dh
inc ecx
add byte [eax], al
inc edx
add byte [esi + ebp + 0x42], ch
add al, al
dec ebp
inc ecx
add byte [edi + ebx + 0x2f000042], dl
inc edx
add byte [eax + 0x20], dl
inc edx
add byte [eax - 0x67ffbdd1], dl
das
inc edx
add ah, bh
das
inc edx
add byte [eax - 0x77ffbddf], ah
xor byte [edx], al
push 0x8004231
xor eax, 0x228c0042
inc edx
add ah, dh
xor eax, 0x35f80042
inc edx
add byte [eax + 0x37], dl
inc edx
add ah, dh
sub eax, 0x21a80042
inc edx
add byte [esp + esi], ah
inc edx
add ah, ch
xor byte [edx], al
in al, dx
xor al, 0x42
add byte [ecx + edi + 0x3a280042], ah
inc edx
add byte [edx + edi + 0x42], bl
add byte [ecx], cl
push esp
dec ebp
je 0x41e95f
imul bp, word [ebp - 0x75], 0x8c0
jmp 0x948e94b
add byte [eax], dl
cmp al, 0x40
add byte [esp + edi], al
inc eax
add byte [ecx + edi + 0x40], cl
add byte [eax + 0x39], ch
inc eax
add ah, ch
inc edx
add byte [eax + 0x3f], cl
inc edx
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
lea eax, gs:[bx + si]
aam 0xe9
inc ecx
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 [edx + ebp*8 + 0x41], dl
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 - 0x16], cl
inc ecx
add byte [eax + eax], bh
add byte [eax], al
and ch, 0x41
add ah, bh
cmp eax, dword [eax]
xor byte [ebp + 0x41], cl
add byte [esp + edi], cl
inc eax
add byte [eax], dl
cmp al, 0x40
add byte [esp + edi], al
inc eax
add byte [ecx + edi + 0x40], cl
add byte [eax + 0x39], ch
inc eax
add al, bl
dec ecx
inc edx
add byte [eax + 0x4c], dh
inc ecx
add byte [eax], al
inc edx
add byte [edx + ecx*2], dl
inc edx
add al, al
dec ebp
inc ecx
add ah, dh
dec ebx
inc edx
add byte [esp + ecx*2 + 0x42], dh
add byte [eax + 0x20], dl
inc edx
add byte [eax], ch
dec edi
inc edx
add ah, bl
dec edi
inc edx
add byte [eax + edx*2], bl
inc edx
add byte [eax + 0x64004221], ah
push ecx
inc edx
add byte [eax + 0x55], dl
inc edx
add byte [eax + 0x5d], bl
inc edx
add al, dh
pop ebp
inc edx
add byte [edx + 0x602c0042], ch
inc edx
add byte [eax + 0x60], cl
inc edx
add byte [eax + 0x49], dh
inc edx
add byte [eax + 0x34004221], ch
and al, byte [edx]
sub al, 0x54
inc edx
add byte [eax], cl
arpl word [edx], ax
test al, 0x53
inc edx
add byte [eax], dl
arpl word [edx], ax
mov al, 0x63
inc edx
add byte [edi + ecx*2 + 0x4fec0042], cl
inc edx
add byte [esp + ebx*2], bl
inc edx
add byte [edi], al
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41ea5470
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x41e9d470
add byte [eax - 0x1a], cl
inc ecx
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x41eacc
jo 0x41ead5
imul esp, dword [ebx + 0x73], 0xc08b0000
shr dl, 0x41
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 ah, al
ljmp 0
popal
nop
sbb al, 0xeb
inc ecx
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 + 0x41eb], dl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + ebp*8 + 0x340041], al
add byte [eax], al
and ch, 0x41
add ah, bh
cmp eax, dword [eax]
xor byte [ebp + 0x41], cl
add byte [esp + edi], cl
inc eax
add byte [eax], dl
cmp al, 0x40
add byte [esp + edi], al
inc eax
add byte [ecx + edi + 0x40], cl
add byte [eax + 0x39], ch
inc eax
add byte [eax + 0x70004264], dh
dec esp
inc ecx
add byte [eax], al
inc edx
add al, ah
inc edx
add al, al
dec ebp
inc ecx
add byte [edi + ebx + 0x65400042], dl
inc edx
add byte [eax + 0x20], dl
inc edx
add byte [ebp + 0x65b00042], al
inc edx
add byte [ecx + 0x21a00042], bl
inc edx
add ah, al
inc edx
add byte [eax], ch
and al, byte [edx]
dec eax
push 0x228c0042
inc edx
add byte [eax - 0x7bffbd98], al
push 0x22bc0042
inc edx
add byte [esp + 0x42], bl
add byte [eax + 0x34004221], ch
and al, byte [edx]
add al, 0x67
inc edx
add byte [eax + ebp*2 + 0x68c40042], bl
inc edx
add al, bl
push 0x68600042
inc edx
add byte [0x6f634954], al
outsb dx, byte [esi]
mov eax, eax
nop
jmp 0x41ebd0
jae 0x41ebfc
add byte [esi + eax + 0x50], dh
call sub.gdi32.dll_DeleteObject
ret
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
or al, 0xec
inc ecx
add byte [esp + ebp*8], dl
inc ecx
add byte [eax + eax], ah
add byte [eax], al
mov al, byte [0xfc004010]
cmp eax, dword [eax]
or byte [eax + eax*2], bh
add byte [esp + edi], cl
inc eax
add byte [eax], dl
cmp al, 0x40
add byte [esp + edi], al
add al, 0x3c
inc eax
add byte [ecx + edi + 0x40], cl
add byte [eax + 0x39], ch
inc eax
add ah, ah
in al, dx
inc ecx
add byte [ecx], al
add bh, bh
inc dword [eax - 0x11]
inc ecx
add byte [eax], dl
push esp
push edx
jae 0x41ec89
jne 0x41ec8e
arpl word [ebp + 0x4d], sp
dec ebp
popal
outsb dx, byte [esi]
popal
jb 0x41ebb3
inc eax
add byte [esp + ebp*8 + 0x41], dh
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 [esp + ebp*8 + 0x41], dh
add byte [esp + ebp*8 + 0x41], bh
add byte [eax + eax], ah
add byte [eax], al
shr bl, 0x41
add ah, bh
cmp eax, dword [eax]
or byte [eax + eax*2], bh
add byte [esp + edi], cl
inc eax
add byte [eax], dl
cmp al, 0x40
add byte [esp + edi], al
inc eax
add byte [ecx + edi + 0x40], cl
add byte [eax + 0x39], ch
inc eax
add ah, ah
in al, dx
inc ecx
add byte [ecx], al
add bh, bh
push dword [eax + 0x150041ef]
push esp
inc edx
jb 0x41ecf6
jae 0x41eceb
push edx
jae 0x41ecf6
jne 0x41ecfb
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x41ec1e
ror byte [ecx + 0x31c289d1], 0xc0
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0x41ec9a
ret
mov ebx, edx
mov esi, eax
lea eax, [esi + 8]
push eax
call sub.kernel32.dll_DeleteCriticalSection
test bl, bl
jle 0x41ed03
invalid
pop es
mov eax, esi
call fcn.00403d28
pop esi
pop ebx
ret