Function at 0x42f3e0
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x1f8]
sub esp, 0x1f8
push 0xfffffffffffffffe
push 0x46ff30
push 0x408890
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x473534]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0x1f4], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
xor esi, esi
mov dword [ebp - 0x1c], esi
xor ecx, ecx
jmp 0x42f430
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
mov edx, ecx
sub edx, eax
cmp edx, 1
jne 0x42f449
and esi, ecx
jmp 0x42f44b
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 8
jl 0x42f430
xor eax, eax
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 0xc
jl 0x42f458
test esi, esi
jle 0x42f46f
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x2e8ba2e9
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xb
mov ecx, esi
sub ecx, eax
jne 0x42f493
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42f4b4
cmp eax, 4
je 0x42f4b4
and esi, ecx
jmp 0x42f4b6
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x42f495
push 0xfa
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 0x1f
jl 0x42f4d2
test esi, esi
jle 0x42f4e9
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x2e8ba2e9
imul esi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xb
mov edx, esi
sub edx, ecx
jne 0x42f50d
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, 0x1b
jge 0x42f562
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x42f531
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x42f55a
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42f55d
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x42f516
mov dword [ebp - 4], 0xfffffffe
call fcn.0042f609
mov edi, 0xa
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test esi, esi
jle 0x42f583
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov edx, esi
sub edx, ecx
jne 0x42f5a2
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call ebx
sub edi, 1
jne 0x42f579
mov dword [ebp - 4], 1
xor ecx, ecx
mov dword [ebp - 0x38], ecx
test ecx, ecx
jge 0x42f613
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x42f5d5
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x42f5fe
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42f601
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x42f5bb
mov dword [ebp - 4], 0xfffffffe
call fcn.0042f643
xor ecx, ecx
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x42f64d
and esi, ecx
jmp 0x42f64f
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x42f621
mov dword [ebp - 0x1c], esi
test esi, esi
jge 0x42f666
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42f693
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x42f6a1
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42f6c8
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 5
jl 0x42f695
xor ecx, ecx
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42f6f1
cmp eax, 4
je 0x42f6f1
and esi, ecx
jmp 0x42f6f3
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x42f6d2
push 0xfa
lea eax, [ebp]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
call edi
xor eax, eax
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x42f711
test esi, esi
jge 0x42f727
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42f754
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 2
xor ecx, ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 5
jge 0x42f7a9
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x42f778
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x42f7a1
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42f7a4
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x42f75d
mov dword [ebp - 4], 0xfffffffe
call fcn.0042f7df
xor ecx, ecx
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x42f7e9
and esi, ecx
jmp 0x42f7eb
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 8
jl 0x42f7b7
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x42f804
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42f82b
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x42f7f8
xor ecx, ecx
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42f854
cmp eax, 4
je 0x42f854
and esi, ecx
jmp 0x42f856
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x42f835
push 0xfa
lea eax, [ebp]
push eax
call edi
xor ecx, ecx
mov edi, edi
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42f88f
cmp eax, 4
je 0x42f88f
and esi, ecx
jmp 0x42f891
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x42f870
push 0xfa
lea eax, [ebp]
push eax
call edi
xor eax, eax
lea esp, [esp]
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x42f8b0
test esi, esi
jge 0x42f8c6
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42f8f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 3
xor ecx, ecx
mov dword [ebp - 0x20], ecx
test ecx, ecx
jge 0x42f947
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x42f916
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x42f93f
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42f942
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x42f8fc
mov dword [ebp - 4], 0xfffffffe
call fcn.0042f983
xor ecx, ecx
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42f98d
cmp eax, 4
je 0x42f98d
and esi, ecx
jmp 0x42f98f
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x42f955
push 0xfa
lea eax, [ebp]
push eax
call edi
test esi, esi
jge 0x42f9ae
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42f9db
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x1c], esi
test esi, esi
jge 0x42f9e7
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42fa14
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov edi, 4
lea esp, [esp]
test esi, esi
jle 0x42fa2a
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
mov ecx, esi
sub ecx, eax
jne 0x42fa49
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call ebx
sub edi, 1
jne 0x42fa20
xor ecx, ecx
jmp 0x42fa60
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42fa7f
cmp eax, 4
je 0x42fa7f
and esi, ecx
jmp 0x42fa81
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x42fa60
push 0xfa
lea eax, [ebp]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
call edi
xor eax, eax
nop
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x42faa0
test esi, esi
jle 0x42fab7
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x2e8ba2e9
imul esi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xb
mov edx, esi
sub edx, ecx
jne 0x42fadb
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor eax, eax
lea ecx, [ecx]
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x42fae0
test esi, esi
jge 0x42faf6
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42fb23
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42fb44
cmp eax, 4
je 0x42fb44
and esi, ecx
jmp 0x42fb46
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x42fb25
push 0xfa
lea eax, [ebp]
push eax
call edi
xor ecx, ecx
mov edi, edi
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42fb7f
cmp eax, 4
je 0x42fb7f
and esi, ecx
jmp 0x42fb81
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x42fb60
push 0xfa
lea eax, [ebp]
push eax
call edi
xor eax, eax
lea esp, [esp]
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x42fba0
test esi, esi
jge 0x42fbb6
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42fbe3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x42fbf1
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42fc18
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x42fbe5
mov edi, 3
test esi, esi
jle 0x42fc2f
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov edx, esi
sub edx, ecx
jne 0x42fc4e
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call ebx
sub edi, 1
jne 0x42fc25
xor eax, eax
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x42fc60
test esi, esi
jle 0x42fc77
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x2e8ba2e9
imul esi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xb
mov edx, esi
sub edx, ecx
jne 0x42fc9b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
lea ecx, [ecx]
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42fcbf
cmp eax, 4
je 0x42fcbf
and esi, ecx
jmp 0x42fcc1
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x42fca0
push 0xfa
lea eax, [ebp]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
call edi
xor eax, eax
nop
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x42fce0
test esi, esi
jge 0x42fcf6
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42fd23
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 4
xor ecx, ecx
mov dword [ebp - 0x24], ecx
test ecx, ecx
jge 0x42fd77
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x42fd46
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x42fd6f
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42fd72
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x42fd2c
mov dword [ebp - 4], 0xfffffffe
call fcn.0042fdf0
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x42fd91
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42fdb8
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x42fd85
xor ecx, ecx
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42fdfa
cmp eax, 4
je 0x42fdfa
and esi, ecx
jmp 0x42fdfc
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x42fdc2
push 0xfa
lea eax, [ebp]
push eax
call edi
xor eax, eax
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x42fe14
test esi, esi
jge 0x42fe2a
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42fe57
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
lea esp, [esp]
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x42fe7f
cmp eax, 4
je 0x42fe7f
and esi, ecx
jmp 0x42fe81
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x42fe60
push 0xfa
lea eax, [ebp]
push eax
call edi
xor eax, eax
lea esp, [esp]
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x42fea0
test esi, esi
jge 0x42feb6
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42fee3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor eax, eax
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x42fee5
test esi, esi
jge 0x42fefb
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x42ff28
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 5
xor ecx, ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 1
jge 0x42ff7d
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x42ff4c
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x42ff75
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x42ff78
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x42ff31
mov dword [ebp - 4], 0xfffffffe
call fcn.0042fff2
mov edi, 2
mov edi, edi
test esi, esi
jle 0x42ff9a
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov edx, esi
sub edx, ecx
jne 0x42ffb9
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call ebx
sub edi, 1
jne 0x42ff90
xor ecx, ecx
jmp 0x42ffd0
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x42fffc
and esi, ecx
jmp 0x42fffe
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x42ffd0
xor ecx, ecx
jmp 0x430010
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x43002f
cmp eax, 4
je 0x43002f
and esi, ecx
jmp 0x430031
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x430010
push 0xfa
lea eax, [ebp]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
call edi
mov dword [ebp - 0x1c], esi
test esi, esi
jge 0x430059
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
sub edx, ecx
jne 0x430088
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 6
xor ecx, ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 3
jge 0x4300dd
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x4300ac
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x4300d5
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x4300d8
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x430091
mov dword [ebp - 4], 0xfffffffe
call fcn.0043011e
mov dword [ebp - 0x1c], esi
xor ecx, ecx
mov edi, edi
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x430128
cmp eax, 4
je 0x430128
and esi, ecx
jmp 0x43012a
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x4300f0
push 0xfa
lea eax, [ebp]
push eax
call edi
test esi, esi
jge 0x430149
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x430172
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x430193
cmp eax, 4
je 0x430193
and esi, ecx
jmp 0x430195
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x430174
push 0xfa
lea eax, [ebp]
push eax
call edi
xor ecx, ecx
lea ecx, [ecx]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x4301c9
and esi, ecx
jmp 0x4301cb
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x4301b0
mov dword [ebp - 0x1c], esi
xor ecx, ecx
jmp 0x4301e0
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x4301ff
cmp eax, 4
je 0x4301ff
and esi, ecx
jmp 0x430201
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x4301e0
push 0xfa
lea eax, [ebp]
push eax
call edi
mov ecx, esi
mov dword [ebp - 0x1c], ecx
xor esi, esi
mov edi, edi
mov eax, 0xaaaaaaab
mul esi
shr edx, 1
lea edx, [edx + edx*2]
mov eax, esi
sub eax, edx
cmp eax, 1
jne 0x430239
and ecx, esi
jmp 0x43023b
or ecx, esi
mov dword [ebp - 0x1c], ecx
add esi, 1
cmp esi, 2
jl 0x430220
xor esi, esi
xor ecx, esi
mov dword [ebp - 0x1c], ecx
jge 0x430254
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x43027b
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
add esi, 1
cmp esi, 3
jl 0x430248
xor eax, eax
xor ecx, eax
mov dword [ebp - 0x1c], ecx
add eax, 1
cmp eax, 4
jl 0x430285
test ecx, ecx
jge 0x43029b