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

Disassembly:
push ebp
lea ebp, [esp - 0x1f8]
sub esp, 0x1f8
push 0xfffffffffffffffe
push 0x471280
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 ecx, ecx
jmp 0x456d40
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
mov edx, ecx
sub edx, eax
cmp edx, 1
jne 0x456d59
and esi, ecx
jmp 0x456d5b
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0x2e
jl 0x456d40
xor eax, eax
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 0x1e
jl 0x456d68
test esi, esi
jge 0x456d7e
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 0x456dab
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, 0x10
jge 0x456e00
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x456dcf
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x456df8
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 0x456dfb
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x456db4
mov dword [ebp - 4], 0xfffffffe
call fcn.00456e74
mov edi, 0xb
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test esi, esi
jle 0x456e21
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 0x456e40
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call ebx
sub edi, 1
jne 0x456e17
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 0x456e7e
cmp eax, 4
je 0x456e7e
and esi, ecx
jmp 0x456e80
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0x1f
jl 0x456e52
push 0xfa
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, esi
mov dword [ebp - 0x1c], ecx
xor eax, eax
xor ecx, eax
mov dword [ebp - 0x1c], ecx
add eax, 1
cmp eax, 0x1a
jl 0x456ea1
test ecx, ecx
jge 0x456eb7
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 0x456ee4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
xor esi, esi
xor ecx, esi
mov dword [ebp - 0x1c], ecx
jge 0x456ef2
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 0x456f19
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
add esi, 1
cmp esi, 6
jl 0x456ee6
xor eax, eax
xor ecx, eax
mov dword [ebp - 0x1c], ecx
add eax, 1
cmp eax, 0x20
jl 0x456f23
test ecx, ecx
jge 0x456f39
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 0x456f66
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x1c], ecx
mov esi, ecx
mov dword [ebp - 0x1c], esi
test esi, esi
jle 0x456f78
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
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
sub edx, ecx
jne 0x456f9e
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 1
xor ecx, ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 4
jge 0x456ff3
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x456fc2
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x456feb
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 0x456fee
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x456fa7
mov dword [ebp - 4], 0xfffffffe
call fcn.0045705d
mov dword [ebp - 4], 2
xor ecx, ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 3
jge 0x457067
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x457023
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x45704c
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 0x45704f
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x457008
mov dword [ebp - 4], 0xfffffffe
call fcn.00457212
xor eax, eax
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 5
jl 0x457075
test esi, esi
jle 0x45708c
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 0x4570ac
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x1c], esi
test esi, esi
jge 0x4570b8
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 0x4570e5
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 0x4570e7
test esi, esi
jge 0x4570fd
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 0x45712a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov edi, 4
nop
test esi, esi
jle 0x45713a
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 0x457159
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
sub edi, 1
jne 0x457130
mov edi, 6
test esi, esi
jle 0x45717c
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 0x45719b
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
sub edi, 1
jne 0x457172
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x4571bd
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 0x4571e4
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x4571b1
xor ecx, ecx
mov edi, edi
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x45721c
and esi, ecx
jmp 0x45721e
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 7
jl 0x4571f0
xor ecx, ecx
jmp 0x457230
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x45724f
cmp eax, 4
je 0x45724f
and esi, ecx
jmp 0x457251
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 8
jl 0x457230
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, 3
jl 0x457270
test esi, esi
jge 0x457286
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 0x4572b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor 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 0x4572ce
and esi, ecx
jmp 0x4572d0
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 5
jl 0x4572b5
xor eax, eax
lea ecx, [ecx]
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 6
jl 0x4572e0
test esi, esi
jle 0x4572f7
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 0x457317
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
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 0x457339
and esi, ecx
jmp 0x45733b
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 8
jl 0x457320
xor ecx, ecx
jmp 0x457350
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 1
je 0x45736f
cmp eax, 4
je 0x45736f
and esi, ecx
jmp 0x457371
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x457350
push 0xfa
lea eax, [ebp]
push eax
call edi
mov dword [ebp - 4], 3
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, 1
jge 0x4573dc
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x4573ab
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x4573d4
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 0x4573d7
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x457390
mov dword [ebp - 4], 0xfffffffe
call fcn.00457412
xor ecx, ecx
lea ebx, [ebx]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edx, [edx + edx*2]
mov eax, ecx
sub eax, edx
cmp eax, 1
jne 0x45741c
and esi, ecx
jmp 0x45741e
or esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 4
jl 0x4573f0
xor eax, eax
jmp 0x457430
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x457430
test esi, esi
jle 0x457447
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 0x457467
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
xor eax, eax
lea esp, [esp]
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x457470
test esi, esi
jle 0x457487
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 0x4574a7
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 4
xor ecx, ecx
mov dword [ebp - 0x20], ecx
test ecx, ecx
jge 0x4574fb
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x4574ca
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x4574f3
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 0x4574f6
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x4574b0
mov dword [ebp - 4], 0xfffffffe
call fcn.00457565
mov dword [ebp - 4], 5
xor ecx, ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 3
jge 0x45756f
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x45752b
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x457554
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 0x457557
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x457510
mov dword [ebp - 4], 0xfffffffe
call fcn.00457708
test esi, esi
jle 0x457585
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 0x4575a5
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
xor eax, eax
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x4575a7
test esi, esi
jle 0x4575be
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 0x4575de
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x1c], esi
test esi, esi
jge 0x4575ea
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 0x457611
xor esi, esi
mov dword [ebp - 0x1c], esi
xor eax, eax
xor esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x457613
test esi, esi
jge 0x457629
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 0x457656
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov edi, 4
jmp 0x457660
test esi, esi
jle 0x45766a
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 0x457689
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
sub edi, 1
jne 0x457660
xor eax, eax
nop
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x4576a0
test esi, esi
jle 0x4576b7
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 0x4576d7
call ebx
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 0x457712
cmp eax, 4
je 0x457712
and esi, ecx
jmp 0x457714
sub esi, ecx
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x4576e0
push 0xfa
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edi, 4
test esi, esi
jle 0x45773d
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 0x45775c
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
sub edi, 1
jne 0x457733
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x45777e
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 0x4577a5
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x457772
mov dword [ebp - 0x1c], esi
test esi, esi
jge 0x4577b9
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 0x4577e0
xor esi, esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x1c], esi
mov edi, 3
test esi, esi
jle 0x4577f2
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 0x457811
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea edx, [ebp]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
sub edi, 1
jne 0x4577e8
mov dword [ebp - 4], 6
xor ecx, ecx
mov dword [ebp - 0x28], ecx
test ecx, ecx
jge 0x457879
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x457848
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x457871
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 0x457874
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x45782e
mov dword [ebp - 4], 0xfffffffe
call fcn.004579dc
xor eax, eax
or esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x457887
test esi, esi
jle 0x45789e
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 0x4578be
call ebx
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x4578cc
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 0x4578f3
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 3
jl 0x4578c0
mov dword [ebp - 0x1c], esi
mov edi, 2
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test esi, esi
jle 0x457913
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 0x457932
mov esi, 0xb
mov dword [ebp - 0x1c], esi
push 0xfa
lea eax, [ebp]
push eax
call ebx
sub edi, 1
jne 0x457909
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x457950
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 0x457977
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x457944
mov dword [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x30], ecx
test ecx, ecx
jge 0x4579e6
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x4579a2
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x4579cb
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 0x4579ce
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x457988
mov dword [ebp - 4], 0xfffffffe
call fcn.00457a4a
mov dword [ebp - 4], 8
xor ecx, ecx
mov dword [ebp - 0x38], ecx
cmp ecx, 2
jge 0x457a54
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x457a16
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x457a3f
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 0x457a42
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x4579fb
mov dword [ebp - 4], 0xfffffffe
call fcn.00457a8a
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1f4]
xor ecx, ebp
call fcn.0040473f
add ebp, 0x1f8
mov esp, ebp
pop ebp
ret