Function at 0x4211e0
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 0x421238
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x42121d
mov dword [eax], 0
test ebx, ebx
je 0x421227
mov dword [ebx], 0
test ebp, ebp
je 0x421ade
mov byte [ebp], 0x20
jmp 0x421ade
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 0x42124b
lea edi, [esp + 0x10]
mov edx, 0x807400
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 0x421268
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x4213ec
mov esi, 0x5f
mov word [esp + 0xc], si
mov eax, 4
mov edx, 2
xor ecx, ecx
call fcn.00421e53
mov dword [esp + 0x450], eax
mov dword [esp + 0x454], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x421aeb
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4212e4
mov dword [eax], 1
test ebx, ebx
je 0x4212ee
mov dword [ebx], 0
test ebp, ebp
je 0x4212f6
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.00421e53
mov dword [esp + 0x498], eax
mov dword [esp + 0x49c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x421376
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421358
mov dword [eax], 2
test ebx, ebx
je 0x421362
mov dword [ebx], 0
test ebp, ebp
je 0x42136a
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.00421e53
mov dword [esp + 0x4a0], eax
mov dword [esp + 0x4a4], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x4213f5
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4213cc
mov dword [eax], 3
test ebx, ebx
je 0x4213d6
mov dword [ebx], 0
test ebp, ebp
je 0x4213de
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x4213f5
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 0x421400
lea edi, [esp + 0x10]
mov edx, 0x80740c
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 0x42141d
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x4214af
mov esi, 0x46
mov word [esp + 0xc], si
mov eax, 4
mov edx, 4
xor ecx, ecx
call fcn.00421e53
mov dword [esp + 0x458], eax
mov dword [esp + 0x45c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x4214af
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421491
mov dword [eax], 3
test ebx, ebx
je 0x42149b
mov dword [ebx], 0
test ebp, ebp
je 0x4214a3
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 0x4214ba
lea edi, [esp + 0x10]
mov edx, 0x807400
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 0x4214d7
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x421655
mov esi, 0x9b
mov word [esp + 0xc], si
mov eax, 4
mov edx, 5
xor ecx, ecx
call fcn.00421e53
mov dword [esp + 0x460], eax
mov dword [esp + 0x464], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x42156d
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x42154f
mov dword [eax], 5
test ebx, ebx
je 0x421559
mov dword [ebx], 0
test ebp, ebp
je 0x421561
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.00421e53
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x4215e1
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4215c3
mov dword [eax], 6
test ebx, ebx
je 0x4215cd
mov dword [ebx], 0
test ebp, ebp
je 0x4215d5
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.00421e53
mov dword [esp + 0x470], eax
mov dword [esp + 0x474], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x421655
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421637
mov dword [eax], 6
test ebx, ebx
je 0x421641
mov dword [ebx], 1
test ebp, ebp
je 0x421649
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 0x421660
lea edi, [esp + 0x10]
mov edx, 0x80741c
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 0x42167d
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x421712
mov esi, 0x206
mov word [esp + 0xc], si
mov eax, 4
mov edx, 6
mov ecx, 3
call fcn.00421e53
mov dword [esp + 0x478], eax
mov dword [esp + 0x47c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x421712
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4216f4
mov dword [eax], 6
test ebx, ebx
je 0x4216fe
mov dword [ebx], 1
test ebp, ebp
je 0x421706
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 0x42171d
lea edi, [esp + 0x10]
mov edx, 0x807400
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 0x42173a
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x4217cc
mov esi, 0x2bc
mov word [esp + 0xc], si
mov eax, 4
mov edx, 7
xor ecx, ecx
call fcn.00421e53
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x4217cc
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4217ae
mov dword [eax], 7
test ebx, ebx
je 0x4217b8
mov dword [ebx], 0
test ebp, ebp
je 0x4217c0
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 0x4217d7
lea edi, [esp + 0x10]
mov edx, 0x807428
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 0x4217f4
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x421886
mov esi, 0x2cc
mov word [esp + 0xc], si
mov eax, 4
mov edx, 7
xor ecx, ecx
call fcn.00421e53
mov dword [esp + 0x488], eax
mov dword [esp + 0x48c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x421886
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421868
mov dword [eax], 7
test ebx, ebx
je 0x421872
mov dword [ebx], 0
test ebp, ebp
je 0x42187a
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 0x421891
lea edi, [esp + 0x10]
mov edx, 0x807400
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 0x4218ae
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x4218e6
movzx esi, word [esp + 0x4ae]
cmp esi, 4
je 0x421dfa
cmp esi, 5
je 0x421d7a
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x4218f1
lea edi, [esp + 0x10]
mov edx, 0x807434
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 0x42190e
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x421958
movzx esi, word [esp + 0x4ae]
cmp esi, 4
je 0x421d29
cmp esi, 5
je 0x421ca1
cmp esi, 4
je 0x421c54
cmp esi, 5
je 0x421bd4
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x421963
lea edi, [esp + 0x10]
mov edx, 0x807440
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 0x421980
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x421a15
mov esi, 0x375
mov word [esp + 0xc], si
mov eax, 6
mov edx, 3
mov ecx, 1
call fcn.00421e53
mov dword [esp + 0x490], eax
mov dword [esp + 0x494], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x421a15
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x4219f7
mov dword [eax], 8
test ebx, ebx
je 0x421a01
mov dword [ebx], 1
test ebp, ebp
je 0x421a09
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 0x421a20
lea edi, [esp + 0x10]
mov edx, 0x807450
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 0x421a3d
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x421a75
movzx esi, word [esp + 0x4ae]
cmp esi, 4
je 0x421b8a
cmp esi, 5
je 0x421b0a
lea esi, [esp + 0x10]
lea edi, [esp + 0x250]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x421a80
lea edi, [esp + 0x10]
mov edx, 0x80745c
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 0x421a9d
lea eax, [esp + 0x10]
lea edx, [esp + 0x4a8]
call fcn.00421ea0
test eax, eax
jl 0x421af9
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421acc
mov dword [eax], 9
test ebx, ebx
je 0x421ad6
mov dword [ebx], 0
test ebp, ebp
je 0x421ade
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 0x421302
mov eax, dword [esp + 0x4b0]
test eax, eax
je 0x42120c
jmp 0x421ade
mov esi, 0x86
mov word [esp + 0xc], si
mov eax, 5
mov edx, 2
mov ecx, 0xe5d
call fcn.00421e53
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x421a75
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421b67
mov dword [eax], 8
test ebx, ebx
je 0x421b71
mov dword [ebx], 2
test ebp, ebp
je 0x421b79
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x421a75
mov edi, 0x86
mov word [esp + 0xc], di
mov eax, 4
mov edx, 9
xor ecx, ecx
call fcn.00421e53
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jge 0x421b56
jmp 0x421a6c
mov esi, 0x385
mov word [esp + 0xc], si
mov eax, 5
mov edx, 1
mov ecx, 0xa28
call fcn.00421e53
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x421958
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421c31
mov dword [eax], 8
test ebx, ebx
je 0x421c3b
mov dword [ebx], 1
test ebp, ebp
je 0x421c43
mov byte [ebp], 0x61
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x421958
mov edi, 0x385
mov word [esp + 0xc], di
mov eax, 4
mov edx, 8
mov ecx, 1
call fcn.00421e53
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jge 0x421c20
jmp 0x42194f
mov edi, 0x371
mov word [esp + 0xc], di
mov eax, 5
mov edx, 1
mov ecx, 0xa28
call fcn.00421e53
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x421946
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421cfe
mov dword [eax], 8
test ebx, ebx
je 0x421d08
mov dword [ebx], 1
test ebp, ebp
je 0x421d10
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
movzx esi, word [esp + 0x4ae]
jmp 0x421946
mov edi, 0x371
mov word [esp + 0xc], di
mov eax, 4
mov edx, 8
mov ecx, 1
call fcn.00421e53
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jge 0x421ced
jmp 0x42193d
mov esi, 0x190
mov word [esp + 0xc], si
mov eax, 5
mov edx, 1
mov ecx, 0x8d2
call fcn.00421e53
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jl 0x4218e6
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x421dd7
mov dword [eax], 8
test ebx, ebx
je 0x421de1
mov dword [ebx], 0
test ebp, ebp
je 0x421de9
mov byte [ebp], 0x20
mov eax, 1
mov dword [esp + 0x4b0], eax
jmp 0x4218e6
mov edi, 0x190
mov word [esp + 0xc], di
mov eax, 4
mov edx, 8
xor ecx, ecx
call fcn.00421e53
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], edx
push edx
push eax
push dword [esp + 0x4b4]
push dword [esp + 0x4b4]
call fcn.00421e6c
add esp, 0x10
test eax, eax
jge 0x421dc6
jmp 0x4218dd