Function at 0x418450
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55e64e
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x5be26c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 4], 0
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x11c], 0
call fcn.00418ed0
mov ecx, eax
test ecx, ecx
je 0x418da5
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov dword [ebp - 0x11c], 1
mov eax, 0x9903
mov word [ebp - 0x34], ax
mov ecx, 0x9913
mov word [ebp - 0x32], cx
mov eax, 0x9915
mov word [ebp - 0x30], ax
mov edx, 0x9907
mov eax, 0x9906
mov dword [ebp - 4], 0
mov word [ebp - 0x2e], ax
xor edi, edi
mov word [ebp - 0x2c], dx
mov eax, 0x991b
mov word [ebp - 0x2a], ax
mov ebx, 0xf
mov eax, 0x990d
mov word [ebp - 0x28], ax
mov eax, 0x9910
mov word [ebp - 0x26], ax
mov eax, 0x993e
mov word [ebp - 0x24], ax
mov eax, 0x9921
mov word [ebp - 0x22], ax
mov eax, 0x9900
mov word [ebp - 0x20], cx
mov ecx, 0x990f
mov word [ebp - 0x1e], ax
mov eax, 0x9914
mov word [ebp - 0x1c], cx
mov word [ebp - 0x1a], ax
mov eax, 0x9960
mov word [ebp - 0x18], dx
mov word [ebp - 0x16], cx
mov word [ebp - 0x14], ax
mov ax, word [ebp - 0x34]
nop dword [eax]
mov ax, word [ebp + edi*2 - 0x34]
mov ecx, edi
and ecx, ebx
movzx esi, ax
cmp ecx, ebx
mov eax, 0xa17c9958
mov edx, 0x192a74c2
cmovae ecx, ebx
shl ecx, 2
call fcn.0046c590
and ax, 0xf
lea ecx, [edi - 0x66a8]
xor ax, cx
xor ax, si
mov word [ebp + edi*2 - 0x34], ax
inc edi
cmp edi, 0x11
jb 0x418560
push 0x5726b4
push str.Setup_Path
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x120]
push reloc.OLEAUT32.dll_SysReAllocString
push eax
call fcn.0045f600
add esp, 0x14
mov ebx, dword [ebp - 0x114]
or esi, 0xffffffff
mov ecx, dword [eax]
mov dword [ebp - 4], 1
mov edi, dword [ebx]
lea edx, [ecx - 0x10]
sub edi, 0x10
cmp edx, edi
je 0x418627
cmp dword [edi + 0xc], 0
jl 0x41861c
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x41861c
push edx
call fcn.004112d0
add esp, 4
mov dword [ebp - 0x110], eax
mov ecx, esi
lea edx, [edi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x418615
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x110]
add eax, 0x10
mov dword [ebx], eax
jmp 0x418627
push dword [ecx - 0xc]
push ecx
mov ecx, ebx
call fcn.0041f550
mov edx, dword [ebp - 0x120]
mov eax, esi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418648
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
jne 0x418d87
mov eax, 0xd9e3
mov ecx, 0xd99f
mov word [ebp - 0x10c], ax
mov esi, 0xd9a4
mov eax, 0xd9fd
mov edi, 0xd9a6
mov word [ebp - 0x10a], ax
mov edx, 0xd9a2
mov eax, 0xd9f5
mov word [ebp - 0x108], ax
mov eax, 0xd9e2
mov word [ebp - 0x106], ax
mov eax, 0xd9e1
mov word [ebp - 0x104], ax
mov eax, 0xd9f0
mov word [ebp - 0x102], ax
mov eax, 0xd9e4
mov word [ebp - 0x100], ax
mov eax, 0xd9f3
mov word [ebp - 0xfe], ax
mov eax, 0xd986
mov word [ebp - 0xfc], cx
mov word [ebp - 0xfa], ax
mov eax, 0xd9ae
mov word [ebp - 0xf8], ax
mov eax, 0xd9a3
mov word [ebp - 0xf6], ax
mov eax, 0xd9b5
mov word [ebp - 0xf4], ax
mov eax, 0xd9bd
mov word [ebp - 0xf2], si
mov word [ebp - 0xf0], ax
mov eax, 0xd9b6
mov word [ebp - 0xee], si
mov word [ebp - 0xec], di
mov word [ebp - 0xea], ax
mov eax, 0xd991
mov word [ebp - 0xe8], cx
mov ecx, 0xd9a9
mov word [ebp - 0xe6], ax
mov eax, 0xd9af
mov word [ebp - 0xe4], ax
mov word [ebp - 0xe2], ax
mov eax, 0xd9a8
mov word [ebp - 0xe0], dx
mov word [ebp - 0xde], cx
mov word [ebp - 0xdc], si
mov word [ebp - 0xda], ax
mov eax, 0xd98b
mov word [ebp - 0xd8], ax
mov eax, 0xd993
mov word [ebp - 0xd6], ax
mov eax, 0xd9ac
mov word [ebp - 0xd4], dx
mov word [ebp - 0xd2], cx
mov ecx, 0xd9be
mov word [ebp - 0xd0], ax
mov eax, 0xd985
mov word [ebp - 0xce], cx
mov word [ebp - 0xcc], cx
mov word [ebp - 0xca], di
mov word [ebp - 0xc8], ax
mov eax, 0xd9b3
mov word [ebp - 0xc6], ax
mov eax, 0xd9bf
mov word [ebp - 0xc4], si
mov word [ebp - 0xc2], dx
mov edx, 0xd990
mov word [ebp - 0xc0], ax
mov eax, 0xd9b9
mov word [ebp - 0xbe], ax
mov eax, 0xd98d
mov word [ebp - 0xbc], ax
mov eax, 0xd9b7
mov word [ebp - 0xba], ax
mov eax, 0xd997
mov word [ebp - 0xb8], di
mov word [ebp - 0xb6], dx
mov word [ebp - 0xb4], ax
mov eax, 0xd9cb
mov word [ebp - 0xb2], ax
mov word [ebp - 0xb0], cx
mov eax, 0xd994
mov ecx, 0xd98a
xor edi, edi
mov word [ebp - 0xae], cx
mov ebx, 0xf
mov word [ebp - 0xac], ax
mov eax, 0xd9ba
mov word [ebp - 0xaa], cx
mov ecx, 0xd986
mov word [ebp - 0xa8], dx
mov word [ebp - 0xa6], ax
mov eax, 0xd9d5
mov word [ebp - 0xa4], ax
mov eax, 0xd9d7
mov word [ebp - 0xa2], ax
mov eax, 0xd9d6
mov word [ebp - 0xa0], ax
mov eax, 0xd991
mov word [ebp - 0x9e], ax
mov eax, 0xd983
mov word [ebp - 0x9c], ax
mov eax, 0xd99a
mov word [ebp - 0x9a], ax
mov eax, 0xd987
mov word [ebp - 0x98], ax
mov eax, 0xd980
mov word [ebp - 0x96], ax
mov eax, 0xd9d9
mov word [ebp - 0x94], ax
mov eax, 0xd99e
mov word [ebp - 0x92], ax
mov word [ebp - 0x90], cx
mov word [ebp - 0x8e], ax
mov eax, 0xd9f0
mov word [ebp - 0x8c], ax
mov ax, word [ebp - 0x10c]
mov ax, word [ebp + edi*2 - 0x10c]
mov ecx, edi
and ecx, ebx
movzx esi, ax
cmp ecx, ebx
mov eax, 0x98cad9b8
mov edx, 0xc8e335a3
cmovae ecx, ebx
shl ecx, 2
call fcn.0046c590
and ax, 0xf
lea ecx, [edi - 0x2648]
xor ax, cx
xor ax, si
mov word [ebp + edi*2 - 0x10c], ax
inc edi
cmp edi, 0x41
jb 0x418923
push 0x5726b4
push str.Path
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x124]
push reloc.OLEAUT32.dll_SysReAllocString
push eax
call fcn.0045f600
add esp, 0x14
mov ebx, dword [ebp - 0x114]
mov ecx, dword [eax]
mov dword [ebp - 4], 2
mov esi, dword [ebx]
lea edx, [ecx - 0x10]
sub esi, 0x10
cmp edx, esi
je 0x4189f1
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4189e6
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x4189e6
push edx
call fcn.004112d0
add esp, 4
mov dword [ebp - 0x110], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x4189df
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x110]
add eax, 0x10
mov dword [ebx], eax
jmp 0x4189f1
push dword [ecx - 0xc]
push ecx
mov ecx, ebx
call fcn.0041f550
mov edx, dword [ebp - 0x124]
or eax, 0xffffffff
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418a13
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
jne 0x418d87
mov eax, 0xf5b3
mov edx, 0xf588
mov word [ebp - 0x88], ax
mov ecx, 0xf58b
mov word [ebp - 0x86], dx
mov eax, 0xf589
mov word [ebp - 0x84], ax
xor edi, edi
mov eax, 0xf590
mov ebx, 0xf
mov word [ebp - 0x82], ax
mov eax, 0xf595
mov word [ebp - 0x80], ax
mov eax, 0xf592
mov word [ebp - 0x7e], cx
mov word [ebp - 0x7c], ax
mov eax, 0xf5ac
mov word [ebp - 0x7a], cx
mov ecx, 0xf5bd
mov word [ebp - 0x78], ax
mov eax, 0xf5bb
mov word [ebp - 0x76], ax
mov eax, 0xf5a8
mov word [ebp - 0x74], cx
mov word [ebp - 0x72], ax
mov eax, 0xf5b9
mov word [ebp - 0x70], ax
mov eax, 0xf593
mov word [ebp - 0x6e], ax
mov eax, 0xf59c
mov word [ebp - 0x6c], ax
mov eax, 0xf59f
mov word [ebp - 0x6a], ax
mov eax, 0xf596
mov word [ebp - 0x68], cx
mov word [ebp - 0x66], ax
mov eax, 0xf58c
mov word [ebp - 0x64], ax
mov eax, 0xf580
mov word [ebp - 0x62], ax
mov eax, 0xf597
mov word [ebp - 0x60], ax
mov eax, 0xf5f0
mov word [ebp - 0x5e], dx
mov word [ebp - 0x5c], ax
mov ax, word [ebp - 0x88]
nop dword [eax]
mov ax, word [ebp + edi*2 - 0x88]
mov ecx, edi
and ecx, ebx
movzx esi, ax
cmp ecx, ebx
mov eax, 0x1e7ef5e8
mov edx, 0xd77a8b60
cmovae ecx, ebx
shl ecx, 2
call fcn.0046c590
and ax, 0xf
lea ecx, [edi - 0xa18]
xor ax, cx
xor ax, si
mov word [ebp + edi*2 - 0x88], ax
inc edi
cmp edi, 0x17
jb 0x418b00
push 0x5726b4
push str.Setup_Path
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x118]
push reloc.OLEAUT32.dll_SysReAllocString
push eax
call fcn.0045f600
add esp, 0x14
mov ebx, dword [ebp - 0x114]
mov ecx, dword [eax]
mov dword [ebp - 4], 3
mov esi, dword [ebx]
lea edx, [ecx - 0x10]
sub esi, 0x10
cmp edx, esi
je 0x418bce
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x418bc3
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x418bc3
push edx
call fcn.004112d0
add esp, 4
mov dword [ebp - 0x110], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x418bbc
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x110]
add eax, 0x10
mov dword [ebx], eax
jmp 0x418bce
push dword [ecx - 0xc]
push ecx
mov ecx, ebx
call fcn.0041f550
mov edx, dword [ebp - 0x118]
or eax, 0xffffffff
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418bf0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
jne 0x418d87
mov ecx, 0x9903
mov eax, 0x9933
mov word [ebp - 0x58], cx
xor esi, esi
mov word [ebp - 0x56], ax
mov ebx, 0xf
mov eax, 0x9935
mov word [ebp - 0x54], ax
mov eax, 0x9926
mov word [ebp - 0x52], ax
mov eax, 0x9927
mov word [ebp - 0x50], ax
mov eax, 0x993b
mov word [ebp - 0x4e], ax
mov eax, 0x992d
mov word [ebp - 0x4c], ax
mov eax, 0x9930
mov word [ebp - 0x4a], ax
mov eax, 0x993e
mov word [ebp - 0x48], ax
mov eax, 0x9921
mov word [ebp - 0x46], ax
mov eax, 0x9902
mov word [ebp - 0x44], ax
mov eax, 0x9917
mov word [ebp - 0x42], ax
mov eax, 0x9922
mov word [ebp - 0x40], ax
mov eax, 0x990e
mov word [ebp - 0x3e], ax
mov eax, 0x991b
mov word [ebp - 0x3c], ax
mov eax, 0x9960
mov word [ebp - 0x3a], cx
mov word [ebp - 0x38], ax
mov ax, word [ebp - 0x58]
nop dword [eax + eax]
mov ax, word [ebp + esi*2 - 0x58]
mov ecx, esi
and ecx, ebx
movzx edi, ax
cmp ecx, ebx
mov eax, 0xa17c9958
mov edx, 0x192a74c2
cmovae ecx, ebx
shl ecx, 2
call fcn.0046c590
and ax, 0xf
lea ecx, [esi - 0x66a8]
xor ax, cx
xor ax, di
mov word [ebp + esi*2 - 0x58], ax
inc esi
cmp esi, 0x11
jb 0x418ca0
push 0x5726b4
push str.Setup_Path
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x128]
push reloc.OLEAUT32.dll_SysReAllocString
push eax
call fcn.0045f600
add esp, 0x14
mov ebx, dword [ebp - 0x114]
mov ecx, dword [eax]
mov dword [ebp - 4], 4
mov esi, dword [ebx]
lea edx, [ecx - 0x10]
sub esi, 0x10
cmp edx, esi
je 0x418d65
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x418d5a
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x418d5a
push edx
call fcn.004112d0
add esp, 4
mov dword [ebp - 0x118], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x418d53
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x118]
add eax, 0x10
mov dword [ebx], eax
jmp 0x418d65
push dword [ecx - 0xc]
push ecx
mov ecx, ebx
call fcn.0041f550
mov esi, dword [ebp - 0x128]
or eax, 0xffffffff
mov byte [ebp - 4], 0
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x418d87
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046c16d
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00410dc0
int3