Function at 0x4093c3
Capabilities:
Encode data using xor
Set file attributes

Disassembly:
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push ebp
mov ebp, ecx
xor ebp, 0x1c98
lea eax, [ecx + 0x13c0]
mov dword [esp + 8], eax
lea edx, [ecx + 0x16a3]
mov eax, dword [esp + 0x2c]
push esi
add eax, 0xffffc72a
lea esi, [ecx - 0x2a02]
push edi
mov edi, dword [esp + 0x28]
add ecx, 0xae1
mov dword [esp + 0x1c], eax
xor edi, 0x3076
lea eax, [ebp - 0x1ed]
mov dword [esp + 0xc], esi
mov dword [esp + 0x34], ecx
cmp ecx, eax
jl 0x40982f
mov eax, edx
xor eax, 0x7343
push ebx
cmp edi, eax
jge 0x409765
mov esi, dword [esp + 0x30]
xor ebp, ebp
mov edi, ebp
mov eax, dword [esi + 0x48]
push 0x10
mov ecx, dword [edi + eax]
add edi, 4
movzx eax, byte [esi + 0x38]
mov dword [esi], 0xffe92243
movzx edx, cl
mov ecx, dword [esi + 0x3c]
imul edx, eax
mov eax, dword [esi + 0x60]
mov byte [ecx + eax], dl
inc dword [esi + 0x3c]
mov eax, dword [esi + 0x24]
xor eax, 0x10
add dword [esi + 0xc], eax
mov eax, dword [esi + 0x7c]
sub eax, 0xd
or dword [esi + 0xe8], eax
mov eax, dword [esi + 0x84]
mov dword [esi + 0xc], 0x179c73
or dword [esi + 0x9c], eax
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 0x24]
xor eax, 0x179c63
sub dword [esi + 0xc0], eax
pop eax
sub eax, dword [esi + 0x64]
sub eax, dword [esi + 0x24]
add dword [esi + 0xb4], eax
cmp edi, 0x1f470
jl 0x409436
mov ecx, dword [esi + 0x7c]
add ecx, 0x24ca0
mov dword [esi + 0x38], ecx
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x64]
jbe 0x4094d0
mov eax, dword [esi + 0x50]
sub eax, dword [esi + 4]
mov dword [esi + 0xc0], eax
jmp 0x4094d9
xor ecx, 0xd74c83bc
mov dword [esi + 0x38], ecx
mov dword [esi + 0x48], section..data
mov edi, ebp
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x48]
sub ecx, 0xf
imul ecx, dword [esi + 0xc8]
mov edx, dword [edi + eax]
add edi, 4
mov eax, dword [esi + 0x84]
add ecx, dword [esi + 0xdc]
add eax, 0x1159e0
add eax, ecx
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0x50]
sub eax, 0x24d992
xor dword [esi + 0x9c], eax
mov eax, dword [esi + 0xa0]
sub eax, dword [esi + 0x24]
add eax, 0x10
imul eax, dword [esi + 0x7c]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0xb4]
sub eax, dword [esi + 0xe4]
mov ebx, dword [esi + 0x38]
add eax, 0x124f92
add dword [esi + 0x94], eax
mov ecx, dword [esi + 0xdc]
mov eax, dword [esi + 0xe8]
add ecx, 0x115996
add eax, ecx
imul ebx, edx
imul eax, dword [esi + 0xd4]
mov edx, ebx
mov dword [esi + 0xd4], eax
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x60]
shr edx, 8
mov byte [ecx + eax], dl
inc dword [esi + 0x3c]
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x60]
mov byte [ecx + eax], bl
inc dword [esi + 0x3c]
mov eax, dword [esi + 0xa0]
imul eax, dword [esi + 0x24]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x50]
xor eax, 0x24d992
sub dword [esi + 0xe4], eax
mov eax, 0x4fd38
mov ecx, dword [esi + 0x7c]
xor ecx, dword [esi + 0xe4]
sub eax, ecx
add dword [esi + 4], eax
mov eax, dword [esi + 0xb4]
xor eax, 0xfff2ada2
imul eax, dword [esi + 0xa0]
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0x94]
sub eax, 0x53
xor dword [esi + 0xb4], eax
mov ecx, dword [esi + 0xa0]
mov eax, dword [esi + 0xdc]
sub eax, ecx
add eax, 0x1159e1
xor dword [esi], eax
xor eax, eax
inc eax
sub eax, ecx
add dword [esi + 0x50], eax
mov ecx, dword [esi + 0x50]
cmp edi, 0x1e90
jl 0x4094e2
mov eax, dword [esi + 0xd4]
cmp eax, dword [esi + 0xdc]
ja 0x40962d
sub ecx, dword [esi + 0x94]
sub ecx, 0x1b33a0
mov dword [esi + 0x38], ecx
jmp 0x409634
mov dword [esi + 0x64], 0x1305a
mov eax, dword [esi + 0x64]
add eax, dword [esi + 0x50]
xor eax, dword [esi + 0x38]
xor eax, 0x8b23b7f4
mov dword [esi + 0x38], eax
mov eax, dword [esi + 4]
cmp eax, dword [esi + 0xa0]
ja 0x409657
mov dword [esi + 0x48], 0x42b1c0
mov eax, dword [esi + 0xdc]
xor eax, dword [esi + 0xd4]
xor eax, 0xffeea620
add dword [esi + 0xc8], eax
mov eax, dword [esi + 0x64]
add eax, dword [esi + 0x9c]
xor eax, 0xf9ec3
sub dword [esi + 0x4c], eax
mov eax, dword [esi + 0x48]
mov ecx, dword [eax + ebp]
mov eax, 0xfff2ada3
sub eax, dword [esi + 0xb4]
add ebp, 4
add dword [esi + 4], eax
mov eax, dword [esi + 0xe4]
sub eax, 0x4fd34
movzx edx, cl
imul eax, dword [esi + 0xe8]
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0xe8], eax
movzx eax, byte [esi + 0x38]
imul edx, eax
mov eax, dword [esi + 0x60]
mov byte [ecx + eax], dl
mov eax, dword [esi + 4]
sub eax, dword [esi + 0xe8]
inc dword [esi + 0x3c]
xor eax, 0xffffffb5
add dword [esi + 0x9c], eax
mov eax, dword [esi + 0xdc]
add eax, 0x1159e0
add dword [esi + 0xc0], eax
mov eax, dword [esi]
xor eax, 0xffe92242
imul eax, dword [esi + 0xb4]
mov dword [esi + 0xb4], eax
mov eax, dword [esi + 0xa0]
sub eax, dword [esi + 0x24]
add eax, 0xf
add dword [esi + 4], eax
mov eax, dword [esi + 0x94]
sub eax, 0x53
add dword [esi + 0xe8], eax
mov eax, dword [esi + 0xd4]
or dword [esi + 0xc], eax
mov eax, dword [esi + 4]
add eax, 0xffe8638d
add eax, dword [esi + 0xc]
xor dword [esi + 0x94], eax
cmp ebp, 0xc30
jl 0x409657
mov eax, dword [esi + 0xc]
add eax, 0x68343da0
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0xe8]
ja 0x40982e
mov dword [esi + 0x48], 0x42be30
jmp 0x40982e
mov ebx, dword [esp + 0x30]
lea eax, [edi + edi]
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x2c], ecx
cmp ecx, eax
jle 0x40982e
xor esi, edx
mov dword [esp + 0x18], esi
imul eax, dword [esp + 0x20], 0x38d6
add edi, eax
mov eax, edi
or eax, 0x377b
xor eax, dword [ebx + 0xd0]
push eax
mov eax, dword [ebx + 0xa0]
and eax, 0x32ad
sub eax, 0x3252
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [ebx + 4]
mov eax, ecx
or ecx, dword [esp + 0x38]
or eax, esi
or ebp, eax
mov eax, dword [esp + 0x10]
or ecx, eax
sub eax, ecx
mov dword [ebx + 4], ecx
push eax
mov eax, dword [ebx + 0x80]
imul eax, ebp
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [ebx + 0x9c]
mov eax, ebp
mov edx, dword [ebx + 0xc4]
and eax, 0xd6
xor edx, dword [ebx + 0x14]
sub ecx, 0x38d6
xor ecx, dword [esp + 0x14]
or eax, 0x3800
push ebx
push eax
push ecx
mov esi, edi
sub esi, dword [ebx + 0x7c]
push edx
push esi
call fcn.0042994f
mov esi, dword [esp + 0x2c]
lea ecx, [edi + edi]
mov dword [esp + 0x34], eax
add esp, 0x14
mov eax, dword [esp + 0x2c]
add eax, 2
mov dword [esp + 0x2c], eax
cmp eax, ecx
jg 0x409781
pop ebx
mov eax, dword [esp + 0x1c]
pop edi
pop esi
add eax, 0x2b95
pop ebp
add esp, 0xc
ret