Function at 0x42153c
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 0x421594
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421579
mov dword [eax], 0
test ebx, ebx
je 0x421583
mov dword [ebx], 0
test ebp, ebp
je 0x421e3a
mov byte [ebp], 0x20
jmp 0x421e3a
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 0x4215a7
lea edi, [esp + 0x10]
mov edx, 0x80f2fc
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 0x4215c4
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x421748
mov esi, 0x5f
mov word [esp + 0xc], si
mov eax, 4
mov edx, 2
xor ecx, ecx
call fcn.004221af
mov dword [esp + 0x450], eax
mov dword [esp + 0x454], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421e47
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421640
mov dword [eax], 1
test ebx, ebx
je 0x42164a
mov dword [ebx], 0
test ebp, ebp
je 0x421652
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.004221af
mov dword [esp + 0x498], eax
mov dword [esp + 0x49c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x4216d2
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4216b4
mov dword [eax], 2
test ebx, ebx
je 0x4216be
mov dword [ebx], 0
test ebp, ebp
je 0x4216c6
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.004221af
mov dword [esp + 0x4a0], eax
mov dword [esp + 0x4a4], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421751
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421728
mov dword [eax], 3
test ebx, ebx
je 0x421732
mov dword [ebx], 0
test ebp, ebp
je 0x42173a
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x421751
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 0x42175c
lea edi, [esp + 0x10]
mov edx, 0x80f308
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 0x421779
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x42180b
mov esi, 0x46
mov word [esp + 0xc], si
mov eax, 4
mov edx, 4
xor ecx, ecx
call fcn.004221af
mov dword [esp + 0x458], eax
mov dword [esp + 0x45c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x42180b
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4217ed
mov dword [eax], 3
test ebx, ebx
je 0x4217f7
mov dword [ebx], 0
test ebp, ebp
je 0x4217ff
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 0x421816
lea edi, [esp + 0x10]
mov edx, 0x80f2fc
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 0x421833
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x4219b1
mov esi, 0x9b
mov word [esp + 0xc], si
mov eax, 4
mov edx, 5
xor ecx, ecx
call fcn.004221af
mov dword [esp + 0x460], eax
mov dword [esp + 0x464], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x4218c9
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4218ab
mov dword [eax], 5
test ebx, ebx
je 0x4218b5
mov dword [ebx], 0
test ebp, ebp
je 0x4218bd
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.004221af
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x42193d
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x42191f
mov dword [eax], 6
test ebx, ebx
je 0x421929
mov dword [ebx], 0
test ebp, ebp
je 0x421931
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.004221af
mov dword [esp + 0x470], eax
mov dword [esp + 0x474], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x4219b1
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421993
mov dword [eax], 6
test ebx, ebx
je 0x42199d
mov dword [ebx], 1
test ebp, ebp
je 0x4219a5
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 0x4219bc
lea edi, [esp + 0x10]
mov edx, 0x80f318
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 0x4219d9
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x421a6e
mov esi, 0x206
mov word [esp + 0xc], si
mov eax, 4
mov edx, 6
mov ecx, 3
call fcn.004221af
mov dword [esp + 0x478], eax
mov dword [esp + 0x47c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421a6e
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421a50
mov dword [eax], 6
test ebx, ebx
je 0x421a5a
mov dword [ebx], 1
test ebp, ebp
je 0x421a62
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 0x421a79
lea edi, [esp + 0x10]
mov edx, 0x80f2fc
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 0x421a96
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x421b28
mov esi, 0x2bc
mov word [esp + 0xc], si
mov eax, 4
mov edx, 7
xor ecx, ecx
call fcn.004221af
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421b28
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421b0a
mov dword [eax], 7
test ebx, ebx
je 0x421b14
mov dword [ebx], 0
test ebp, ebp
je 0x421b1c
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 0x421b33
lea edi, [esp + 0x10]
mov edx, 0x80f324
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 0x421b50
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x421be2
mov esi, 0x2cc
mov word [esp + 0xc], si
mov eax, 4
mov edx, 7
xor ecx, ecx
call fcn.004221af
mov dword [esp + 0x488], eax
mov dword [esp + 0x48c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421be2
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421bc4
mov dword [eax], 7
test ebx, ebx
je 0x421bce
mov dword [ebx], 0
test ebp, ebp
je 0x421bd6
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 0x421bed
lea edi, [esp + 0x10]
mov edx, 0x80f2fc
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 0x421c0a
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x421c42
movzx esi, word [esp + 0x4ae]
cmp esi, 4
je 0x422156
cmp esi, 5
je 0x4220d6
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x421c4d
lea edi, [esp + 0x10]
mov edx, 0x80f330
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 0x421c6a
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x421cb4
movzx esi, word [esp + 0x4ae]
cmp esi, 4
je 0x422085
cmp esi, 5
je 0x421ffd
cmp esi, 4
je 0x421fb0
cmp esi, 5
je 0x421f30
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x421cbf
lea edi, [esp + 0x10]
mov edx, 0x80f33c
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 0x421cdc
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x421d71
mov esi, 0x375
mov word [esp + 0xc], si
mov eax, 6
mov edx, 3
mov ecx, 1
call fcn.004221af
mov dword [esp + 0x490], eax
mov dword [esp + 0x494], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421d71
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421d53
mov dword [eax], 8
test ebx, ebx
je 0x421d5d
mov dword [ebx], 1
test ebp, ebp
je 0x421d65
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 0x421d7c
lea edi, [esp + 0x10]
mov edx, 0x80f34c
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 0x421d99
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x421dd1
movzx esi, word [esp + 0x4ae]
cmp esi, 4
je 0x421ee6
cmp esi, 5
je 0x421e66
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x421ddc
lea edi, [esp + 0x10]
mov edx, 0x80f358
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 0x421df9
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.004221fc
test eax, eax
jl 0x421e55
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421e28
mov dword [eax], 9
test ebx, ebx
je 0x421e32
mov dword [ebx], 0
test ebp, ebp
je 0x421e3a
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 0x42165e
mov eax, dword [esp + 0x4b0]
test eax, eax
je 0x421568
jmp 0x421e3a
mov esi, 0x86
mov word [esp + 0xc], si
mov eax, 5
mov edx, 2
mov ecx, 0xe5d
call fcn.004221af
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421dd1
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421ec3
mov dword [eax], 8
test ebx, ebx
je 0x421ecd
mov dword [ebx], 2
test ebp, ebp
je 0x421ed5
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x421dd1
mov edi, 0x86
mov word [esp + 0xc], di
mov eax, 4
mov edx, 9
xor ecx, ecx
call fcn.004221af
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jge 0x421eb2
jmp 0x421dc8
mov esi, 0x385
mov word [esp + 0xc], si
mov eax, 5
mov edx, 1
mov ecx, 0xa28
call fcn.004221af
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421cb4
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421f8d
mov dword [eax], 8
test ebx, ebx
je 0x421f97
mov dword [ebx], 1
test ebp, ebp
je 0x421f9f
mov byte [ebp], 0x61
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x421cb4
mov edi, 0x385
mov word [esp + 0xc], di
mov eax, 4
mov edx, 8
mov ecx, 1
call fcn.004221af
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jge 0x421f7c
jmp 0x421cab
mov edi, 0x371
mov word [esp + 0xc], di
mov eax, 5
mov edx, 1
mov ecx, 0xa28
call fcn.004221af
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421ca2
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x42205a
mov dword [eax], 8
test ebx, ebx
je 0x422064
mov dword [ebx], 1
test ebp, ebp
je 0x42206c
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
movzx esi, word [esp + 0x4ae]
jmp 0x421ca2
mov edi, 0x371
mov word [esp + 0xc], di
mov eax, 4
mov edx, 8
mov ecx, 1
call fcn.004221af
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jge 0x422049
jmp 0x421c99
mov esi, 0x190
mov word [esp + 0xc], si
mov eax, 5
mov edx, 1
mov ecx, 0x8d2
call fcn.004221af
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jl 0x421c42
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x422133
mov dword [eax], 8
test ebx, ebx
je 0x42213d
mov dword [ebx], 0
test ebp, ebp
je 0x422145
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x421c42
mov edi, 0x190
mov word [esp + 0xc], di
mov eax, 4
mov edx, 8
xor ecx, ecx
call fcn.004221af
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.004221c8
add esp, 0x10
test eax, eax
jge 0x422122
jmp 0x421c39