Function at 0x4048e3
Capabilities:
Encode data using xor

Disassembly:
cmp byte [ebp + 0x14], 0
je 0x404d18
jmp 0x40be5e
cmp dword [ebp - 0x260], ebx
mov byte [ebp - 0x255], 0
je 0x404618
cmp dword [ebp - 0x25c], ebx
jbe 0x40bcc5
mov eax, dword [ebp - 0x260]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x404621
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x2ec]
push eax
lea ecx, [ebp - 0x260]
call fcn.00404650
mov ecx, eax
call fcn.0040138e
mov esi, eax
jmp 0x404c3a
push ebp
mov ebp, esp
sub esp, 0x334
mov eax, dword [0x410040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
lea esi, [ebx + ebx]
mov eax, esi
shr eax, 1
cmp eax, ebx
push edi
mov byte [ebp - 0x255], 0
jne 0x40ba4d
mov eax, esi
call fcn.00404fe5
xor ecx, ecx
cmp ecx, ebx
sbb edi, edi
mov eax, esp
and edi, eax
mov eax, esi
shr eax, 1
cmp eax, ebx
mov dword [ebp - 0x268], edi
mov dword [ebp - 0x264], ebx
jne 0x40ba5a
mov eax, esi
call fcn.00404fe5
xor ecx, ecx
cmp ecx, ebx
sbb ecx, ecx
mov eax, esp
and ecx, eax
xor eax, eax
cmp eax, ebx
sbb esi, esi
and esi, dword [ebp + 0xc]
cmp eax, ebx
sbb eax, eax
and eax, edi
mov dword [ebp - 0x280], ecx
xor edi, edi
push edi
lea ecx, [ebp - 0x268]
mov dword [ebp - 0x27c], ebx
mov dword [ebp - 0x270], esi
mov dword [ebp - 0x26c], ebx
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], ebx
call fcn.00405257
cmp esi, edi
je 0x40499f
cmp ebx, edi
jbe 0x40ba6d
mov ebx, dword [ebp + 8]
cmp esi, ebx
je 0x4049b3
push edi
push edi
lea ecx, [ebp - 0x270]
call fcn.00401368
mov eax, ebx
xor edi, edi
xor esi, esi
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x4049bc
sub eax, ecx
sar eax, 1
mov dword [ebp - 0x298], eax
je 0x404a05
test esi, esi
je 0x4049e1
cmp word [ebx + esi*2], 0x5c
je 0x404e7e
movzx eax, word [ebx + esi*2]
push eax
push edi
lea ecx, [ebp - 0x280]
call fcn.00401368
inc edi
inc esi
cmp edi, dword [ebp + 0x10]
jae 0x40bae7
cmp esi, dword [ebp - 0x298]
jb 0x4049d2
xor esi, esi
push esi
push edi
lea ecx, [ebp - 0x280]
call fcn.00401368
cmp dword [ebp - 0x268], esi
je 0x404a25
cmp dword [ebp + 0x10], esi
jbe 0x40ba7d
cmp dword [ebp - 0x280], esi
je 0x404a36
cmp dword [ebp + 0x10], esi
jbe 0x40ba87
xor edi, edi
push edi
push dword [ebp - 0x268]
push dword [ebp + 0x10]
push dword [ebp - 0x280]
call fcn.004044f8
cmp dword [ebp + 0xc], edi
mov esi, eax
je 0x404a5d
cmp dword [ebp + 0x10], edi
jbe 0x40ba91
cmp ebx, dword [ebp + 0xc]
je 0x40ba9b
cmp esi, edi
je 0x406423
cmp esi, dword [ebp + 0x10]
jae 0x40bae7
push edi
lea ecx, [ebp - 0x268]
call fcn.004048b9
cmp ax, 0x61
jae 0x40baae
push edi
lea ecx, [ebp - 0x268]
call fcn.004048b9
cmp ax, 0x41
jb 0x404acb
push edi
lea ecx, [ebp - 0x268]
call fcn.004048b9
cmp ax, 0x5a
ja 0x404acb
push 1
lea ecx, [ebp - 0x268]
call fcn.004048b9
cmp ax, 0x3a
jne 0x404acb
mov byte [ebp - 0x255], 1
mov al, byte [ebp - 0x255]
neg al
push 0x3a
push 2
pop ebx
lea ecx, [ebp - 0x268]
sbb eax, eax
and eax, ebx
push eax
lea eax, [ebp - 0x2fc]
push eax
call fcn.00404650
mov ecx, eax
call fcn.0040138e
push eax
call sub.MSVCR80.dll_wcschr
test eax, eax
pop ecx
pop ecx
jne 0x40641c
cmp dword [ebp - 0x268], edi
je 0x404b17
cmp dword [ebp + 0x10], edi
jbe 0x40babf
push 4
push 0x404e74
push dword [ebp - 0x268]
call sub.MSVCR80.dll_wcsncmp
add esp, 0xc
test eax, eax
je 0x40641c
cmp dword [ebp - 0x268], edi
je 0x404b45
cmp dword [ebp + 0x10], edi
jbe 0x40bac9
push 4
push 0x404e68
push dword [ebp - 0x268]
call sub.MSVCR80.dll_wcsncmp
add esp, 0xc
test eax, eax
je 0x40641c
cmp dword [ebp - 0x268], edi
je 0x404b73
cmp dword [ebp + 0x10], edi
jbe 0x40bad3
push 0x404e20
push dword [ebp - 0x268]
call sub.MSVCR80.dll_wcspbrk
test eax, eax
pop ecx
pop ecx
jne 0x40641c
cmp byte [ebp - 0x255], al
je 0x40baf1
cmp dword [ebp - 0x268], edi
je 0x404baa
cmp dword [ebp + 0x10], edi
jbe 0x40badd
lea eax, [ebp - 0x270]
push eax
push 3
push dword [ebp - 0x268]
call fcn.00404f9c
mov esi, eax
cmp esi, edi
je 0x406423
push 3
lea eax, [ebp - 0x29c]
push eax
lea ecx, [ebp - 0x260]
call fcn.0040467d
push esi
lea eax, [ebp - 0x334]
push eax
lea ecx, [ebp - 0x270]
call fcn.0040467d
push edi
lea ecx, [ebp - 0x260]
call fcn.004048b9
test ax, ax
je 0x404dd9
xor ebx, ebx
cmp dword [ebp - 0x260], ebx
mov byte [ebp - 0x255], 1
je 0x404c21
cmp dword [ebp - 0x25c], ebx
jbe 0x40bcbb
push 0x5c
push dword [ebp - 0x260]
call sub.MSVCR80.dll_wcschr
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x4045fd
cmp dword [ebp - 0x260], ebx
je 0x404c4e
cmp dword [ebp - 0x25c], ebx
jbe 0x40bccf
mov edi, esi
sub edi, dword [ebp - 0x260]
sar edi, 1
cmp dword [ebp - 0x26c], edi
jbe 0x40bae7
cmp dword [ebp - 0x260], ebx
je 0x404c78
cmp dword [ebp - 0x25c], ebx
jbe 0x40bcd9
push edi
lea eax, [ebp - 0x260]
push eax
lea ecx, [ebp - 0x270]
call fcn.00404587
cmp dword [ebp - 0x260], ebx
je 0x404c9f
cmp dword [ebp - 0x25c], ebx
jbe 0x40bce3
push ebx
push edi
lea ecx, [ebp - 0x270]
call fcn.00401368
cmp dword [ebp + 0xc], ebx
je 0x404cba
cmp dword [ebp + 0x10], ebx
jbe 0x40bced
lea eax, [ebp - 0x254]
push eax
push dword [ebp + 0xc]
call fcn.0040501e
cmp eax, 0xffffffff
je 0x40639b
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x228]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x404ce2
sub eax, edx
sar eax, 1
mov esi, eax
xor eax, eax
cmp byte [ebp - 0x255], al
setne al
add eax, esi
cmp eax, dword [ebp - 0x26c]
jae 0x40bae7
cmp byte [ebp - 0x255], 0
je 0x4045ce
xor eax, eax
cmp eax, esi
sbb eax, eax
lea ecx, [ebp - 0x228]
and eax, ecx
mov dword [ebp - 0x294], eax
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0x270]
mov dword [ebp - 0x290], esi
call fcn.004046f6
push esi
lea eax, [ebp - 0x2e4]
push eax
lea ecx, [ebp - 0x270]
call fcn.0040467d
cmp dword [ebp - 0x260], ebx
je 0x404d6b
cmp dword [ebp - 0x25c], ebx
jbe 0x40beae
push edi
lea eax, [ebp - 0x2f4]
lea ecx, [ebp - 0x260]
push eax
call fcn.0040467d
cmp byte [ebp - 0x255], 0
je 0x404db5
cmp dword [ebp - 0x26c], 1
jbe 0x40bae7
push 1
lea eax, [ebp - 0x304]
push eax
lea ecx, [ebp - 0x260]
call fcn.0040467d
push 0x5c
lea ecx, [ebp - 0x270]
call fcn.004046b4
push ebx
push ebx
lea ecx, [ebp - 0x270]
call fcn.00401368
push ebx
lea ecx, [ebp - 0x260]
call fcn.004048b9
test ax, ax
jne 0x404c06
xor edi, edi
cmp dword [ebp - 0x270], edi
je 0x404ded
cmp dword [ebp - 0x26c], edi
jbe 0x40becc
cmp dword [ebp + 0xc], edi
je 0x404dfb
cmp dword [ebp + 0x10], edi
jbe 0x40bed6
mov eax, dword [ebp - 0x270]
sub eax, dword [ebp + 0xc]
sar eax, 1
lea esp, [ebp - 0x340]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401317
leave
ret 0x10
cmp word [ebx + esi*2 + 2], 0x5c
jne 0x4049e1
jmp 0x4049f3
add byte [ebx + ebp - 0x5b], dh
and eax, 0xefb7fc68
mov bh, 0xef
mov cl, 0x89
jne 0x406443
jbe 0x406412
cmp edi, dword [ecx - 0x66]
xchg esp, eax
or eax, 0x64144278
insd dword es:[edi], dx
add ebp, edx
jecxz 0x4064a0
leave
mov edx, dword fs:[edx + 0x465b833c]
push 0xf
leave
bound ebx, qword [edi + 0x37]
lodsd eax, dword [esi]
invalid
push cs
invalid
pushal
dec eax
invalid
or dh, cl
sbb byte [edi + ebx*4 - 0x31], cl
dec ebx
sub dl, byte [ebx - 0x74]
push eax
mov ah, 0x41
test bl, dh
lea esp, es:[edi + 0x29bd409c]
or dl, byte [edi]
mov edx, 0x47f48404
ret 0xa9dc
lea eax, [esi]
pop edi
sbb al, 0x7e
int1
add eax, dword [eax + edi + 0x19bdfe5]
and dword [esi + 0x39776699], ecx
ja 0x40bafa
ja 0x40bafa
push ecx
sahf
invalid
or byte [eax], dl
pop ds
adc byte [edi], bl
pop esi
aam 0xf4
invalid
or byte [edi], dl
int1
adc cl, cl
pop ss
and bh, byte [esi - 0x20627756]
mov edi, 0x57b1a5de
popfd
fistp qword [edi + 0x57b1a5de]
rcr byte [ecx - 0x37fe4212], 1
loope 0x40babe
mov ebp, 0xe13ec801
sar edi, 1
rcl byte [edi + 0x5bb709ca], cl
cmp eax, eax
out 0xa4, eax
call edx
xchg edi, eax
retf 0xb709
or dword [edi - 0x183fc6a5], esi
movsb byte es:[edi], byte [esi]
inc edi
jle 0x40baca
iretd
cmp esp, dword [ebx]
xor al, 0xc9
or byte [eax], bl
insb byte es:[edi], dx
out 0xd4, al
push ebx
mov ecx, 0xc3bb77f4
add eax, 0xe84a9723
jno 0x40bb02
sub al, byte [esi - 0x1b8cc76d]
pop esp
xchg edx, eax
loopne 0x40bb52
jg 0x40bad3
lea edx, [ebp - 0x5a]
mov byte [0x5a5723f0], al
invalid
retf 0x77b2
add cl, byte [eax + 0x248e14ff]
cmp ebx, dword [eax + 0x25b49fe3]
mov ah, 0x25
inc edi
and bh, dl
xor al, bh
jno 0x40bd3e
lds ecx, [edi + 0x56]
dec edi
push esi
cmp al, 0x33
retf
mov edx, dword [ebp - 0x7b2cad8a]
invalid
xor al, 0x6d
imul ebx, dword [ebx - 0x3f635a45], 0x5a
movsd dword es:[edi], dword [esi]
pushfd
rcr byte [edx - 0x72], 0x5c
mov ecx, 0xc276e37
mov bl, 0xe7
invalid
mov ds, word [ecx + edi*4 + 0x37]
outsb dx, byte [esi]
daa
or al, 0xb3
out 0xc4, eax
fcmovbe st(0), st(0)
stosd dword es:[edi], eax
cmp eax, 0xab1e3e44
xor al, 0x60
out 0x78, eax
test al, 0x91
adc al, 0xc9
xchg edx, eax
jge 0x40bce9
invalid
in al, 0x2e
or bl, byte [ebp + 0x57]
outsd dx, dword [esi]
mov al, byte [0xbc32b528]
xchg byte [eax + 0x71], al
push ebx
push esp
invalid
mov edx, dword [edx]
invalid
cmc
xchg ecx, eax
pushfd
xchg ecx, eax
jbe 0x40be15
mov edi, 0xb2fff50d
push 0x248ed19f
mov ecx, 0x23be2d7a
push ebx
inc byte [ebp + 0x69]
cmp byte [esi + 0x17], bh
pop ss
aad 0xf4
jecxz 0x40bed6
cmp dword [ecx - 0x668fa399], ecx
retf
push ebp
xchg ebp, eax
push ebp
call 0xf5395a3
in eax, 0x21
clc
jnp 0x40be7a
push edi
or al, 0x7d
imul eax, dword [ebp + 0x1e72378b], 0x63d35818
mov cl, 0x4b
xchg dword [0x5a137a0a], ebx