Function at 0x413f54
Capabilities:
Encode data using xor

Disassembly:
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x46040002], al
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x413905
inc ecx
add byte [eax], dl
add byte [eax], al
call dword [edx + ebx*2]
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x50030003], al
outsb dx, byte gs:[esi]
mov eax, eax
sar byte [eax], 1
inc ecx
add byte [eax], cl
push cs
push esp
push eax
jb 0x413945
jb 0x41393e
jae 0x41394e
inc ebp
jbe 0x413943
outsb dx, byte [esi]
je 0x4138e1
push es
or byte [esi], al
push ebx
outsb dx, byte gs:[esi]
jb 0x4138f2
push esp
dec edi
bound ebp, qword [edx + 0x65]
arpl word [eax + eax + 5], si
push ebx
je 0x413958
add byte [0x67617453], al
push cs
push cs
push esp
push eax
jb 0x41396d
jb 0x413966
jae 0x413976
push ebx
je 0x413967
popal
add byte gs:[bp + di], cl
push eax
jb 0x413971
outsb dx, byte gs:[esi]
je 0x413956
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, 0x42
jns 0x41398d
add byte gs:[ecx], cl
push edx
jb 0x413982
ja 0x413971
outsd dx, dword [esi]
ja 0x41392d
inc edx
outsd dx, dword [esi]
outsd dx, dword [esi]
insb byte es:[edi], dx
popal
outsb dx, byte [esi]
adc al, byte [ecx]
push edx
add eax, 0x63655254
je 0x413939
add ecx, dword [ebp + 0x73]
push es
jae 0x4139a2
push es
push ebx
je 0x4139b1
jb 0x4139a9
imul ebp, dword [esi + 0x67], 0x3990c08b
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], cl
cmp al, byte [ecx]
outsb dx, byte [esi]
mov eax, eax
nop
rcl byte [eax + 0x4139], 0
cmp dword [ecx], eax
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 byte [edx], bh
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, dh
cmp dword [ecx], eax
clc
cmp dword [ecx], eax
sbb al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
invalid
inc ecx
add byte [eax + eax], bl
add byte [eax], al
push esp
rol byte [eax], 0x44
das
inc eax
add byte [eax + 0x2f], dl
inc eax
add byte [edi + ebp + 0x40], dl
add byte [eax + 0x2f], bl
inc eax
add byte [edi + ebp + 0x40], cl
inc eax
add byte [esp + ebp + 0x2cc80040], dh
inc eax
add byte [ebx + ebx*8 + 0x40], bh
add byte [esp + ebx*8 + 0x71040040], cl
fild dword [eax]
mov esp, ds
inc eax
add byte [ecx + esi*2], al
inc ecx
add byte [eax + 0x5c0040db], ch
jo 0x4139e0
add byte [eax + esi*2 + 0x28f80041], dl
inc eax
add byte [eax + 0x71], dl
inc ecx
inc ecx
add al, bh
sub byte [eax], al
push eax
jno 0x4139ec
add al, bh
sub byte [eax], al
clc
sub byte [eax], al
xchg esp, eax
jb 0x4139f8
add byte [eax - 0x7ffbe8e], bl
sub byte [eax], al
sbb byte [ebx + 0x41], dh
add al, bh
sub byte [eax], al
jl 0x413a3d
inc ecx
add byte [eax - 0x7ffbe8d], al
sub byte [eax], al
nop
jae 0x413a18
add byte [edx + esi*2 + 0x73240041], bl
inc ecx
add al, bh
clc
sub byte [eax], al
clc
sub byte [eax], al
clc
sub byte [eax], al
clc
sub byte [eax], al
add dword [eax], eax
std
push eax
jb 0x413a38
add byte [eax], cl
push esp
inc edi
jb 0x413a5e
or byte [edi + eax*2 + 0x72], dl
popal
jo 0x413a67
imul esp, dword [ebx - 0x73], 0x3a080040
inc ecx
add byte [edi], al
or byte [edi + eax*2 + 0x72], dl
popal
jo 0x413a78
imul esp, dword [ebx - 0x70], 0xc8004139
rol byte [eax], 0
inc eax
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x413a81
jo 0x413a8a
imul esp, dword [ebx + 0x73], 0x74900000
cmp al, byte [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
cmp byte [edx], 0x41
add byte [eax + 0x413a], dh
mov al, 0x3a
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx - 0x5fffbec6], dl
cmp al, byte [ecx]
and byte [eax], al
add byte [eax], al
push esp
rol byte [eax], 0x44
das
inc eax
add byte [eax + 0x2f], dl
inc eax
add byte [edi + ebp + 0x40], dl
inc eax
add byte [eax + 0x2f], bl
inc eax
add byte [edi + ebp + 0x40], cl
add byte [esp + ebp + 0x2cc80040], dh
inc eax
add al, dl
js 0x413ab4
add byte [eax], al
jns 0x413ab8
add al, bh
clc
jl 0x413abc
add byte [eax + 0x7a], ah
inc ecx
add byte [esi], cl
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esp + esi + 0x41], al
inc esp
xor al, 0x41
add byte [eax], dl
add byte [eax], al
add byte [edx], al
add ch, bh
invalid
imul esp, dword [ebx + 0x74], 0x74657275
cmp al, byte [ecx]
enter 0x40c0, 0
add byte [eax], al
or byte [edi + 0x72], al
popal
jb 0x413b1f
je 0x413af6
inc ecx
add al, cl
rol byte [eax], 0
add byte [eax], cl
inc edi
jb 0x413b29
jo 0x413b32
imul esp, dword [ebx + 0x73], 0x1c900000
cmp eax, dword [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], 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 byte [ebx], bh
inc ecx
add byte [eax], cl
add byte [eax], al
add byte [eax + edx + 0x40], dh
add byte [eax], al
je 0x413b0a
inc eax
add byte [edi + ebp + 0x40], al
add byte [eax + 0x2f], dl
inc eax
add byte [edi + ebp + 0x40], dl
add byte [eax + 0x2f], bl
inc eax
add byte [edi + ebp + 0x40], cl
add byte [esp + ebp + 0x2cc80040], dh
inc eax
add byte [eax], dl
sub eax, 0x28f80040
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]
jl 0x413b6d
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], 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 + 0x2400413b], al
add byte [eax], al
add al, dl
cmp al, byte [ecx]
inc esp
das
inc eax
add byte [eax + 0x2f], dl
inc eax
add byte [edi + ebp + 0x40], dl
add byte [eax + 0x2f], bl
inc eax
add byte [edi + ebp + 0x40], cl
das
inc eax
add byte [esp + ebp + 0x2cc80040], dh
inc eax
add byte [ebp + edi*2 + 0x41], dh
add byte [eax + 0xe00417d], dh
push esp
dec ebp
je 0x413be7
imul bp, word [ebp + 0x49], 0x616d
nop
fdivr qword [ebx]
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 [esp + edi + 0x41], cl
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 + edi], bh
inc ecx
add byte [eax], ch
add byte [eax], al
add byte [ecx + edi + 0x41], al
add byte [edi + ebp + 0x40], al
add byte [eax + 0x2f], dl
inc eax
add byte [edi + ebp + 0x40], dl
add byte [eax + 0x2f], bl
inc eax
add byte [edi + ebp + 0x40], cl
add byte [esp + ebp + 0x2cc80040], dh
inc eax
add ah, bh
jge 0x413c1c
add byte [esp + ebx*8 + 0x71040040], cl
inc ecx
add byte [esi + edi*2], ch
inc ecx
add byte [ebp + edi*2 + 0x70940041], dh
inc ecx
add al, al
jle 0x413c34
add byte [eax + 0x71], dl
inc ecx
add byte [edi + edi*2 + 0x41], dl
add byte [edi + edi*2 + 0x41], bl
add al, al
jg 0x413c44
add byte [eax + 0x4c004172], bl
add byte [ecx], 0x2c
add dword [ecx], 0x418490
jl 0x413c89
inc ecx
add byte [ebp + eax*4 + 0x41], bh
add byte [eax - 0x27ffbe7b], al
xchg byte [ecx], al
pushfd
jb 0x413c68
add byte [ebp - 0x7927ffbf], 0x41
add byte [edx + esi*2 - 0x7c17ffbf], bl
inc ecx
add byte [eax + 0x74004180], dh
add al, ch
add dword [ecx], 0xffffffb0
add byte [ecx], 0x74
test byte [ecx], al
xor byte [ecx - 0x764bffbf], cl
inc ecx
add byte [ecx], cl
push esp
dec ebp
je 0x413ca3
imul bp, word [ebp - 0x75], 0x4cc0
insb byte es:[edi], dx
mov eax, eax
dec esp
cmp al, 0x41
add byte [edi], al
or dword [ebp + ecx*2 + 0x65], edx
je 0x413cb4
imul bp, word [ebp - 0x24], 0x413b
add byte [edx + edi], al
inc ecx
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x413cc6
jo 0x413ccf
imul esp, dword [ebx + 0x73], 0x3cb80000
inc ecx
add byte [eax], al
arpl word [ebx], si
add byte [eax + 0x413c], bh
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 [esp + edi + 0x740041], bh
add byte [eax], al
sar byte [edx], 1
inc ecx
add byte [edi + ebp + 0x40], al
add byte [eax + 0x2f], dl
inc eax
add byte [edi + ebp + 0x40], dl
add byte [eax + 0x2f], bl
inc eax
add byte [edi + ebp + 0x40], cl
add byte [esp + ebp + 0x2cc80040], dh
inc eax
add ah, al
lea eax, [ecx]
and byte [esi + 0x540c0041], cl
les ecx, [ebp - 0x71dfffbf]
inc ecx
add byte [esp + edx*2], cl
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x616d4970
popal
lea eax, gs:[bx + si]
sbb byte [0x41], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
nop
cmp eax, 0x41
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
test byte [0x340041], bh
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 + 0x413d], dl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp + edi + 0x340041], al
add byte [eax], al
inc esp
cmp dword [ecx], eax
inc esp
das
inc eax
add byte [eax + 0x2f], dl
inc eax
add byte [edi + ebp + 0x40], dl
add byte [eax + 0x2f], bl
inc eax
add byte [edi + ebp + 0x40], cl
add byte [esp + ebp + 0x2cc80040], dh
inc eax
add byte [eax - 0x73ffbe68], ch
fadd qword [eax]
add al, 0x71
inc ecx
add ah, ah
cwde
inc ecx
add byte [eax - 0x68], al
inc ecx
add byte [eax - 0x1fffbe66], bh
lcall 0x41, 0x71500041
xchg esp, eax
popfd
inc ecx
add byte [esi + ebx*4], bh
inc ecx
add byte [esi + ebx*4 + 0x41], bh
add byte [eax - 0x27ffbe8e], bl
sahf
inc ecx
add byte [edx], dh
inc ecx
add ah, bl
test eax, 0xaab00041
inc ecx
add byte [eax - 0x7bffbe8d], al
stosd dword es:[edi], eax
inc ecx
add al, bl
stosd dword es:[edi], eax
inc ecx
add byte [edx + esi*2 + 0x73240041], bl
inc ecx
add byte [eax], dl
mov eax, dword [0xaeb40041]
inc ecx
add byte [eax - 0x5143ffbf], cl
inc ecx
add ah, ch
popfd
inc ecx
add byte [esi + ebx*4 + 0x41], cl
add byte [eax + ebp*4 + 0x54070041], ah
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x413d9070
add byte [edi], al
pop es
push esp
inc edx
imul esi, dword [ebp + ebp*2 + 0x61], 0x413d1870
add byte [edx + edi], al
inc ecx
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x413e08
jo 0x413e11
imul esp, dword [ebx + 0x73], 0xc08b0000
cld
cmp eax, 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 [esi], bh
inc ecx
add byte [eax], bl
add byte [eax], al
add al, dl
cmp al, byte [ecx]
inc esp
das
inc eax
add byte [eax + 0x2f], dl
inc eax
add byte [edi + ebp + 0x40], dl
add byte [eax + 0x2f], bl
inc eax
add byte [edi + ebp + 0x40], cl
add byte [esp + ebp + 0x2cc80040], dh
inc eax
add byte [edi + ebp*4 + 0x41], bl
add byte [edi + ebp*4 + 0x540a0041], cl
dec ecx
arpl word [edi + 0x6e], bp
dec ecx
insd dword es:[edi], dx
popal
nop
pop eax
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 ah, al
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 + 0x2c00413e], bh
add byte [eax], al
add byte [ecx + edi + 0x41], al
add byte [edi + ebp + 0x40], al
add byte [eax + 0x2f], dl
inc eax
add byte [edi + ebp + 0x40], dl
add byte [eax + 0x2f], bl
inc eax
add byte [edi + ebp + 0x40], cl
add byte [esp + ebp + 0x2cc80040], dh
inc eax
add al, bh
scasd eax, dword es:[edi]
inc ecx
add byte [esp + ebx*8 + 0x71040040], cl
inc ecx
add byte [eax], ch
mov al, 0x41
add byte [edi + ebp*4 + 0x70940041], ah
inc ecx
add byte [eax + 0x500041b0], cl
jno 0x413eb4
add al, cl
mov al, 0x41
add ah, dh
mov al, 0x41
add byte [edx + esi*2 + 0x72980041], dl
inc ecx
add byte [eax], cl
mov cl, 0x41
add byte [eax], bl
jae 0x413ecc
add byte [ebx + esi*4 + 0x737c0041], cl
inc ecx
add byte [ebx + esi*4 - 0x4c57ffbf], ah
inc ecx
add byte [eax - 0x63ffbe8d], dl
jb 0x413ee4
add byte [ebx + esi*2], ah
inc ecx
add byte [eax - 0x4e], cl
inc ecx
add al, al
mov bl, 0x41
add ah, ch
mov bl, 0x41
add byte [eax], al
mov ah, 0x41
add byte [0x6f634954], al
outsb dx, byte [esi]
add byte [ecx + eax*2 + 0x49540500], dh
arpl word [edi + 0x6e], bp
mov eax, eax
les edi, [esi]
inc ecx
add byte [edi], al
add eax, 0x6f634954
outsb dx, byte [esi]
pop eax
inc ecx
add byte [edx + edi], al
inc ecx
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x413f3a
jo 0x413f43
imul esp, dword [ebx + 0x73], 0xc0850000
add byte [ebp + 0x3b0e74c0], al
add eax, 0x47964c
je 0x413ef2
cmp eax, dword [0x47964c]
je 0x413ef2
push eax
call sub.gdi32.dll_DeleteObject
ret
inc eax
add byte [edi + edi + 0x54100041], ah
push edx
jae 0x413fb5
jne 0x413fba
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x413edf
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 0x413f5a
ret
and edi, edi
inc dword [ebx + ebx*8 - 0x3974f882]
jle 0x413fc3
mov eax, esi
call fcn.00403070
pop esi
pop ebx
ret