Function at 0x40b9fb
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov ecx, dword [esp + 0x20]
mov edx, ecx
add dword [esp + 0x14], 0xfffff8bb
xor edx, 0x6f5
push ebx
push ebp
push esi
mov esi, dword [esp + 0x28]
lea eax, [ecx - 0x2c61]
mov dword [esp + 0x2c], eax
lea eax, [ecx - 0x37c7]
push edi
mov edi, dword [esp + 0x28]
lea ebp, [esi - 0x24ba]
mov dword [esp + 0x14], edx
xor esi, 0x16fe
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x2c], esi
cmp ebp, eax
je 0x40bc09
mov eax, dword [edi + 0x44]
add eax, 0xaa46d
add dword [edi + 0x2c], eax
mov edx, dword [0x6abc5c]
mov eax, dword [edx + 0x44]
cmp eax, dword [0x7242d8]
jae 0x40ba7d
mov eax, dword [edx + 0x1c]
add eax, 0x3cec1f6b
add eax, dword [edx + 0xdc]
xor dword [edx + 0x2c], eax
jmp 0x40ba8f
mov eax, dword [edx + 8]
add eax, dword [edi + 0xdc]
add eax, dword [0x7242d0]
xor dword [edi + 0x54], eax
mov eax, dword [0x6abc5c]
cmp dword [eax + 0x80], 0x13a77
jne 0x40bab4
mov eax, dword [edi + 0xa8]
add eax, dword [edi + 0x54]
sub eax, dword [0x7242d8]
xor dword [edi + 0x30], eax
jmp 0x40babb
mov dword [edi + 0x40], 0x40d060
xor esi, esi
mov eax, dword [edi + 0x40]
mov ebx, dword [esi + eax]
add esi, 4
imul ebx, dword [0x72425c]
mov eax, dword [0x6abc5c]
mov ecx, dword [eax + 0x7c]
mov edx, ebx
mov eax, dword [0x724264]
shr edx, 0x10
mov byte [eax + ecx], dl
mov ecx, ebx
mov edx, dword [0x724264]
mov eax, dword [0x7242ac]
inc edx
mov dword [0x724264], edx
shr ecx, 8
mov byte [eax + edx], cl
mov ecx, dword [0x724264]
inc ecx
mov dword [0x724264], ecx
mov eax, dword [edi + 0x7c]
mov byte [ecx + eax], bl
inc dword [0x724264]
mov eax, dword [0x6abc5c]
mov ecx, dword [eax + 0x8c]
sub ecx, dword [edi + 0xc8]
mov eax, dword [0x7242d4]
add eax, 0x63
add eax, ecx
mov dword [0x7242d4], eax
mov eax, dword [edi + 0x54]
sub eax, 0x1c811c
xor dword [edi + 0x70], eax
mov eax, 0xad04a
mov ecx, dword [0x6abc5c]
sub eax, dword [ecx + 0x50]
sub eax, dword [ecx + 8]
add dword [ecx + 0x30], eax
mov eax, dword [0x6abc5c]
mov eax, dword [eax + 0x48]
xor eax, 0x98834
sub dword [edi + 0xa4], eax
mov ecx, dword [0x6abc5c]
mov eax, dword [edi + 0xdc]
sub eax, 0xf8d88
add dword [ecx + 0xa8], eax
mov edx, dword [0x6abc5c]
mov eax, dword [0x72430c]
add eax, 0x1e468
mov ecx, dword [edx + 0xc8]
sub ecx, dword [0x72427c]
add eax, ecx
mov dword [0x72430c], eax
mov eax, dword [0x72424c]
add eax, 0xffe1e398
add eax, dword [edi + 0x30]
or dword [edx + 0xdc], eax
mov eax, dword [edi + 0xa8]
sub eax, 0x1cd8fb
or dword [edi + 0x8c], eax
mov eax, dword [0x7242d0]
xor eax, 1
add dword [edi + 0xc8], eax
mov ecx, dword [0x6abc5c]
mov eax, dword [0x72427c]
add eax, 0xfffe1b35
imul eax, dword [ecx + 0xb0]
mov dword [ecx + 0xb0], eax
cmp esi, 0x8a10
jl 0x40babd
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
jmp 0x40bcce
mov ebx, dword [0x6abc5c]
mov eax, dword [edi + 0x30]
xor eax, dword [0x7242d0]
mov ecx, dword [ebx + 0x68]
and eax, dword [ebx + 0x4c]
mov dword [esp + 0x10], ecx
cmp ecx, eax
ja 0x40bcb2
mov eax, ebp
mov ebp, esi
sub eax, edx
add eax, 0xffffcc9b
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x60]
push dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov esi, dword [0x724284]
xor esi, dword [esp + 0x28]
imul eax, ebp
sub esi, 0x2a9c
sub dword [0x72427c], eax
imul eax, dword [ebx + 0xa8], 0x24ba
and ecx, dword [edi + 0xa0]
mov edx, dword [ebx + 0x74]
or ecx, dword [esp + 0x34]
or edx, dword [esp + 0x28]
push eax
push ecx
push edx
push esi
push edi
call fcn.00408160
mov ebx, dword [0x6abc5c]
add esp, 0x18
mov ecx, dword [edi + 0x30]
xor ecx, dword [0x7242d0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
and ecx, dword [ebx + 0x4c]
add eax, 4
mov dword [esp + 0x10], eax
cmp eax, ecx
jbe 0x40bc39
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x78]
mov ebx, dword [esp + 0x30]
sub eax, 0x2ede
push eax
mov eax, dword [edi + 0x84]
sub eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov eax, ebp
xor eax, 0x2a94
cmp ebp, eax
jg 0x40bda5
mov dword [edi + 0xc0], 0x724230
xor edx, edx
mov eax, dword [0x7242b0]
sub eax, dword [0x7242a0]
sub eax, 0x7c6d80cb
imul eax, dword [edi + 0xc8]
mov dword [edi + 0xc8], eax
mov eax, dword [0x6abc5c]
mov eax, dword [eax + 0x50]
sub eax, dword [0x72430c]
add eax, 0xf8d88
add dword [edi + 0x48], eax
mov eax, dword [edi + 0x44]
xor eax, dword [0x7242f8]
sub eax, 0x6c
add dword [edi + 0x50], eax
mov eax, dword [edi + 0xa0]
dec eax
add dword [edi + 0x54], eax
mov eax, dword [0x7242d8]
add eax, 0xffe32705
add dword [edi + 0xdc], eax
mov eax, dword [0x724280]
sub dword [edi + 0x1c], eax
mov eax, dword [0x7242b8]
mov ecx, dword [edx + eax]
mov eax, dword [0x6abc5c]
xor ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x88]
mov dword [edx + eax], ecx
add edx, 4
mov eax, dword [0x6abc5c]
mov ecx, dword [edi + 0xa4]
sub ecx, dword [eax + 0x50]
inc ecx
imul ecx, dword [edi + 0x1c]
mov dword [edi + 0x1c], ecx
mov eax, dword [0x7242c4]
add dword [edi + 0x38], eax
cmp edx, 0x1796dc
jl 0x40bce9
lea eax, [ebp + 0x3365]
cmp ebx, eax
jg 0x40bda5
mov eax, dword [0x7242b8]
mov dword [edi + 0x3c], eax
pop edi
lea eax, [esi - 0x23]
pop esi
pop ebp
pop ebx
add esp, 0x10
ret