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

Disassembly:
push ebp
lea ebp, [esp - 0x1f8]
sub esp, 0x1f8
push 0xfffffffffffffffe
push 0x470478
push 0x408890
mov eax, dword fs:[0]
push eax
sub esp, 0x30
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 eax, eax
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 0x35
jl 0x43a858
test esi, esi
jle 0x43a86f
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 0x43a893
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor eax, eax
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 0x31
jl 0x43a895
test esi, esi
jge 0x43a8ab
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 0x43a8d8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov edi, 0xf
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test esi, esi
jle 0x43a8ed
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 0x43a90c
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call ebx
sub edi, 1
jne 0x43a8e3
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 0x43a93f
cmp eax, 4
je 0x43a93f
and esi, ecx
jmp 0x43a941
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0xc
jl 0x43a920
push 0xfa
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
lea ecx, [ecx]
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 0xd
jl 0x43a960
test esi, esi
jge 0x43a976
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 0x43a9a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
cmp ecx, 5
jge 0x43a9f8
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x43a9c7
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x43a9f0
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 0x43a9f3
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x43a9ac
mov dword [ebp - 4], 0xfffffffe
call fcn.0043aa2e
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 0x43aa38
cmp eax, 4
je 0x43aa38
and esi, ecx
jmp 0x43aa3a
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0xf
jl 0x43aa06
push 0xfa
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 0xf
jl 0x43aa56
test esi, esi
jge 0x43aa6c
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 0x43aa99
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
jmp 0x43aaa0
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
mov edx, ecx
sub edx, eax
cmp edx, 1
jne 0x43aab9
and esi, ecx
jmp 0x43aabb
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0xb
jl 0x43aaa0
mov edi, 7
jmp 0x43aad0
test esi, esi
jle 0x43aada
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 0x43aaf9
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call ebx
sub edi, 1
jne 0x43aad0
mov edi, 0xf
mov edi, edi
test esi, esi
jle 0x43ab1a
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 0x43ab39
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call ebx
sub edi, 1
jne 0x43ab10
mov edi, 5
mov edi, edi
test esi, esi
jle 0x43ab5a
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 0x43ab79
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call ebx
sub edi, 1
jne 0x43ab50
xor eax, eax
jmp 0x43ab90
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x43ab90
test esi, esi
jle 0x43aba7
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 0x43abcb
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
lea ecx, [ecx]
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x43abdc
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 0x43ac03
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 9
jl 0x43abd0
mov edi, 4
test esi, esi
jle 0x43ac1a
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 0x43ac39
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call ebx
sub edi, 1
jne 0x43ac10
xor ecx, ecx
jmp 0x43ac50
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x43ac69
and esi, ecx
jmp 0x43ac6b
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0xe
jl 0x43ac50
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x43ac84
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 0x43acab
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x43ac78
mov dword [ebp - 0x1c], esi
test esi, esi
jge 0x43acbf
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 0x43ace6
xor esi, esi
mov dword [ebp - 0x1c], esi
mov edi, 0xb
test esi, esi
jle 0x43acf5
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 0x43ad14
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call ebx
sub edi, 1
jne 0x43aceb
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 0x43ad45
cmp eax, 4
je 0x43ad45
and esi, ecx
jmp 0x43ad47
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0xb
jl 0x43ad26
push 0xfa
lea eax, [ebp]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
call edi
mov dword [ebp - 4], 1
xor ecx, ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0xf
jge 0x43adb8
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x43ad87
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x43adb0
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 0x43adb3
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x43ad6c
mov dword [ebp - 4], 0xfffffffe
call fcn.0043adf4
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 0x43adfe
cmp eax, 4
je 0x43adfe
and esi, ecx
jmp 0x43ae00
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 7
jl 0x43adc6
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, 6
jl 0x43ae18
test esi, esi
jge 0x43ae2e
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 0x43ae5b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor eax, eax
lea ecx, [ecx]
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x43ae60
test esi, esi
jle 0x43ae77
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
sub esi, eax
jne 0x43ae97
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x1c], eax
xor esi, esi
mov dword [ebp - 0x1c], esi
push 0xfa
lea ecx, [ebp]
push ecx
call edi
xor ecx, ecx
lea esp, [esp]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x43aec9
and esi, ecx
jmp 0x43aecb
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x43aeb0
mov edi, 4
jmp 0x43aee0
test esi, esi
jle 0x43aeea
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 0x43af09
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call ebx
sub edi, 1
jne 0x43aee0
mov edi, 5
mov edi, edi
test esi, esi
jle 0x43af2a
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 0x43af49
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call ebx
sub edi, 1
jne 0x43af20
xor ecx, ecx
jmp 0x43af60
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x43af79
and esi, ecx
jmp 0x43af7b
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 7
jl 0x43af60
xor eax, eax
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x43af88
test esi, esi
jle 0x43af9f
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 0x43afc3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov edi, 7
test esi, esi
jle 0x43afd2
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 0x43aff1
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call ebx
sub edi, 1
jne 0x43afc8
xor eax, eax
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 8
jl 0x43b003
test esi, esi
jge 0x43b019
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 0x43b046
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov edi, 4
jmp 0x43b050
test esi, esi
jle 0x43b05a
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 0x43b079
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call ebx
sub edi, 1
jne 0x43b050
mov dword [ebp - 4], 2
xor ecx, ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 7
jge 0x43b0de
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x43b0ad
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x43b0d6
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 0x43b0d9
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x43b092
mov dword [ebp - 4], 0xfffffffe
call fcn.0043b112
xor ecx, ecx
lea esp, [esp]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x43b11c
and esi, ecx
jmp 0x43b11e
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x43b0f0
xor eax, eax
jmp 0x43b130
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x43b130
test esi, esi
jle 0x43b147
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 0x43b16b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov edi, 4
test esi, esi
jle 0x43b17a
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 0x43b199
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call ebx
sub edi, 1
jne 0x43b170
xor ecx, ecx
jmp 0x43b1b0
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x43b1bc
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 0x43b1e3
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x43b1b0
test esi, esi
jle 0x43b1f5
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 0x43b219
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
jmp 0x43b220
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x43b23f
cmp eax, 4
je 0x43b23f
and esi, ecx
jmp 0x43b241
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x43b220
push 0xfa
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [ebp - 0x1c], esi
test esi, esi
jle 0x43b268
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 0x43b28c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov edi, 3
test esi, esi
jle 0x43b29b
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 0x43b2ba
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call ebx
sub edi, 1
jne 0x43b291
xor ecx, ecx
lea esp, [esp]
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x43b2dc
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 0x43b303
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x43b2d0
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 0x43b329
and esi, ecx
jmp 0x43b32b
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x43b310
xor eax, eax
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x43b338
test esi, esi
jge 0x43b34e
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 0x43b37b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
lea ecx, [ecx]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
mov edx, ecx
sub edx, eax
cmp edx, 1
jne 0x43b399
and esi, ecx
jmp 0x43b39b
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x43b380
xor ecx, ecx
jmp 0x43b3b0
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x43b3cf
cmp eax, 4
je 0x43b3cf
and esi, ecx
jmp 0x43b3d1
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x43b3b0
push 0xfa
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edi, 2
test esi, esi
jle 0x43b3fa
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 0x43b419