Function at 0x416e78
Capabilities:
Get common file path

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x4b8
mov ebp, ecx
mov ebx, edx
mov dword [esp + 0x4b4], eax
lea eax, [esp + 0x250]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x416ed0
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x416eb5
mov dword [eax], 0
test ebx, ebx
je 0x416ebf
mov dword [ebx], 0
test ebp, ebp
je 0x417776
mov byte [ebp], 0x20
jmp 0x417776
mov byte [esp + 0x353], 0
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x416ee3
lea edi, [esp + 0x10]
mov edx, 0x7d9254
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x416f00
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x417084
mov esi, 0x5f
mov word [esp + 0xc], si
mov eax, 4
mov edx, 2
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x450], eax
mov dword [esp + 0x454], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x417783
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x416f7c
mov dword [eax], 1
test ebx, ebx
je 0x416f86
mov dword [ebx], 0
test ebp, ebp
je 0x416f8e
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
mov esi, 0x448
mov word [esp + 0xc], si
mov eax, 4
mov edx, 3
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x498], eax
mov dword [esp + 0x49c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x41700e
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x416ff0
mov dword [eax], 2
test ebx, ebx
je 0x416ffa
mov dword [ebx], 0
test ebp, ebp
je 0x417002
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
mov esi, 0x44
mov word [esp + 0xc], si
mov eax, 4
mov edx, 4
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x4a0], eax
mov dword [esp + 0x4a4], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x41708d
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x417064
mov dword [eax], 3
test ebx, ebx
je 0x41706e
mov dword [ebx], 0
test ebp, ebp
je 0x417076
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x41708d
xor eax, eax
mov dword [esp + 0x4b0], eax
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x417098
lea edi, [esp + 0x10]
mov edx, 0x7d9260
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x4170b5
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x417147
mov esi, 0x46
mov word [esp + 0xc], si
mov eax, 4
mov edx, 4
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x458], eax
mov dword [esp + 0x45c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x417147
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x417129
mov dword [eax], 3
test ebx, ebx
je 0x417133
mov dword [ebx], 0
test ebp, ebp
je 0x41713b
mov byte [ebp], 0x61
mov eax, 1
mov dword [esp + 0x4b0], eax
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x417152
lea edi, [esp + 0x10]
mov edx, 0x7d9254
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x41716f
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x4172ed
mov esi, 0x9b
mov word [esp + 0xc], si
mov eax, 4
mov edx, 5
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x460], eax
mov dword [esp + 0x464], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x417205
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4171e7
mov dword [eax], 5
test ebx, ebx
je 0x4171f1
mov dword [ebx], 0
test ebp, ebp
je 0x4171f9
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
mov esi, 0x13e
mov word [esp + 0xc], si
mov eax, 4
mov edx, 6
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x417279
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x41725b
mov dword [eax], 6
test ebx, ebx
je 0x417265
mov dword [ebx], 0
test ebp, ebp
je 0x41726d
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
mov esi, 0x1b4
mov word [esp + 0xc], si
mov eax, 4
mov edx, 6
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x470], eax
mov dword [esp + 0x474], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x4172ed
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4172cf
mov dword [eax], 6
test ebx, ebx
je 0x4172d9
mov dword [ebx], 1
test ebp, ebp
je 0x4172e1
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x4172f8
lea edi, [esp + 0x10]
mov edx, 0x7d9270
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x417315
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x4173aa
mov esi, 0x206
mov word [esp + 0xc], si
mov eax, 4
mov edx, 6
mov ecx, 3
call fcn.00417aeb
mov dword [esp + 0x478], eax
mov dword [esp + 0x47c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x4173aa
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x41738c
mov dword [eax], 6
test ebx, ebx
je 0x417396
mov dword [ebx], 1
test ebp, ebp
je 0x41739e
mov byte [ebp], 0x61
mov eax, 1
mov dword [esp + 0x4b0], eax
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x4173b5
lea edi, [esp + 0x10]
mov edx, 0x7d9254
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x4173d2
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x417464
mov esi, 0x2bc
mov word [esp + 0xc], si
mov eax, 4
mov edx, 7
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x417464
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x417446
mov dword [eax], 7
test ebx, ebx
je 0x417450
mov dword [ebx], 0
test ebp, ebp
je 0x417458
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x41746f
lea edi, [esp + 0x10]
mov edx, 0x7d927c
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x41748c
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x41751e
mov esi, 0x2cc
mov word [esp + 0xc], si
mov eax, 4
mov edx, 7
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x488], eax
mov dword [esp + 0x48c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x41751e
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x417500
mov dword [eax], 7
test ebx, ebx
je 0x41750a
mov dword [ebx], 0
test ebp, ebp
je 0x417512
mov byte [ebp], 0x61
mov eax, 1
mov dword [esp + 0x4b0], eax
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x417529
lea edi, [esp + 0x10]
mov edx, 0x7d9254
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x417546
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x41757e
movzx esi, word [esp + 0x4ae]
cmp esi, 4
je 0x417a92
cmp esi, 5
je 0x417a12
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x417589
lea edi, [esp + 0x10]
mov edx, 0x7d9288
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x4175a6
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x4175f0
movzx esi, word [esp + 0x4ae]
cmp esi, 4
je 0x4179c1
cmp esi, 5
je 0x417939
cmp esi, 4
je 0x4178ec
cmp esi, 5
je 0x41786c
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x4175fb
lea edi, [esp + 0x10]
mov edx, 0x7d9294
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x417618
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x4176ad
mov esi, 0x375
mov word [esp + 0xc], si
mov eax, 6
mov edx, 3
mov ecx, 1
call fcn.00417aeb
mov dword [esp + 0x490], eax
mov dword [esp + 0x494], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x4176ad
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x41768f
mov dword [eax], 8
test ebx, ebx
je 0x417699
mov dword [ebx], 1
test ebp, ebp
je 0x4176a1
mov byte [ebp], 0x62
mov eax, 1
mov dword [esp + 0x4b0], eax
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x4176b8
lea edi, [esp + 0x10]
mov edx, 0x7d92a4
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x4176d5
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x41770d
movzx esi, word [esp + 0x4ae]
cmp esi, 4
je 0x417822
cmp esi, 5
je 0x4177a2
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x417718
lea edi, [esp + 0x10]
mov edx, 0x7d92b0
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x417735
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00417b38
test eax, eax
jl 0x417791
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x417764
mov dword [eax], 9
test ebx, ebx
je 0x41776e
mov dword [ebx], 0
test ebp, ebp
je 0x417776
mov byte [ebp], 0x20
xor eax, eax
add esp, 0x4b8
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
mov dword [esp + 0x4b0], eax
jmp 0x416f9a
mov eax, dword [esp + 0x4b0]
test eax, eax
je 0x416ea4
jmp 0x417776
mov esi, 0x86
mov word [esp + 0xc], si
mov eax, 5
mov edx, 2
mov ecx, 0xe5d
call fcn.00417aeb
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x41770d
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4177ff
mov dword [eax], 8
test ebx, ebx
je 0x417809
mov dword [ebx], 2
test ebp, ebp
je 0x417811
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x41770d
mov edi, 0x86
mov word [esp + 0xc], di
mov eax, 4
mov edx, 9
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jge 0x4177ee
jmp 0x417704
mov esi, 0x385
mov word [esp + 0xc], si
mov eax, 5
mov edx, 1
mov ecx, 0xa28
call fcn.00417aeb
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x4175f0
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4178c9
mov dword [eax], 8
test ebx, ebx
je 0x4178d3
mov dword [ebx], 1
test ebp, ebp
je 0x4178db
mov byte [ebp], 0x61
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x4175f0
mov edi, 0x385
mov word [esp + 0xc], di
mov eax, 4
mov edx, 8
mov ecx, 1
call fcn.00417aeb
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jge 0x4178b8
jmp 0x4175e7
mov edi, 0x371
mov word [esp + 0xc], di
mov eax, 5
mov edx, 1
mov ecx, 0xa28
call fcn.00417aeb
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x4175de
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x417996
mov dword [eax], 8
test ebx, ebx
je 0x4179a0
mov dword [ebx], 1
test ebp, ebp
je 0x4179a8
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
movzx esi, word [esp + 0x4ae]
jmp 0x4175de
mov edi, 0x371
mov word [esp + 0xc], di
mov eax, 4
mov edx, 8
mov ecx, 1
call fcn.00417aeb
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jge 0x417985
jmp 0x4175d5
mov esi, 0x190
mov word [esp + 0xc], si
mov eax, 5
mov edx, 1
mov ecx, 0x8d2
call fcn.00417aeb
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jl 0x41757e
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x417a6f
mov dword [eax], 8
test ebx, ebx
je 0x417a79
mov dword [ebx], 0
test ebp, ebp
je 0x417a81
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x41757e
mov edi, 0x190
mov word [esp + 0xc], di
mov eax, 4
mov edx, 8
xor ecx, ecx
call fcn.00417aeb
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00417b04
add esp, 0x10
test eax, eax
jge 0x417a5e
jmp 0x417575