Function at 0x72a6a590
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x234
cmp word [0x72a7c980], 0
je 0x72a6a5b4
cmp word [0x72a7c760], 0
jne 0x72a6a79b
lea ebx, [ebp - 0x218]
mov dword [esp + 4], 0x104
mov dword [esp], ebx
call sym._GetSystemDirectoryW_8
sub esp, 8
test eax, eax
jne 0x72a6a5f0
test byte [0x72a76838], 2
jne 0x72a6a8d0
xor esi, esi
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, 0x72a7c980
mov eax, ebx
jmp 0x72a6a602
mov esi, ecx
movzx edx, word [eax]
test dx, dx
je 0x72a6a61b
lea ecx, [esi + 2]
add eax, 2
lea edi, [ebp - 0x10]
mov word [ecx - 2], dx
cmp eax, edi
jne 0x72a6a600
xor edx, edx
mov eax, 0x72a7c980
mov word [esi], dx
mov edx, 0x104
lea esi, [esi]
cmp word [eax], 0
lea ecx, [edx - 1]
je 0x72a6a7f0
add eax, 2
mov edx, ecx
cmp eax, 0x72a7cb88
jne 0x72a6a630
mov esi, 0x72a7c760
mov eax, ebx
jmp 0x72a6a654
mov esi, ecx
movzx edx, word [eax]
test dx, dx
je 0x72a6a66d
lea ecx, [esi + 2]
add eax, 2
lea edi, [ebp - 0x10]
mov word [ecx - 2], dx
cmp eax, edi
jne 0x72a6a652
xor eax, eax
mov edx, 0x104
mov word [esi], ax
mov eax, 0x72a7c760
lea esi, [esi]
cmp word [eax], 0
lea ecx, [edx - 1]
je 0x72a6a7b0
add eax, 2
mov edx, ecx
cmp eax, 0x72a7c968
jne 0x72a6a680
lea eax, [ebp - 0x21c]
mov dword [esp + 0x10], 0x208
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 1
mov dword [esp + 4], 0x72a78140
mov dword [esp], 0
call sym._LocalGetPrinterDriverDirectory_24
sub esp, 0x18
mov esi, eax
test eax, eax
jne 0x72a6a830
test byte [0x72a76838], 2
je 0x72a6a5de
mov dword [esp + 0x14], str.LocalGetPrinterDriverDirectory_failed_n
mov dword [esp + 0x10], 0x63
mov dword [esp + 0xc], str.InitializePrinterDrivers
mov dword [esp + 8], 0x72a791bd
mov dword [esp + 4], 0x72a76838
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a6a5e0
mov eax, 0x104
sub eax, ecx
mov ecx, 0x55
lea esi, [eax + eax + 0x72a7c540]
xor eax, eax
lea ebx, [esi + 2]
mov word [esi], cx
cmp edx, eax
je 0x72a6a751
add eax, 1
mov esi, ebx
movzx ecx, word [eax + eax + str.UniDrv.dll]
test cx, cx
jne 0x72a6a735
xor edi, edi
mov word [esi], di
test byte [0x72a76838], 1
je 0x72a6a79b
mov dword [esp + 0x18], 0x72a7c540
mov dword [esp + 0x14], str.DriverPath_:__S_n
mov dword [esp + 0x10], 0x6e
mov dword [esp + 0xc], str.InitializePrinterDrivers
mov dword [esp + 8], 0x72a791bd
mov dword [esp + 4], 0x72a76838
mov dword [esp], 0
call sym._ros_dbg_log
lea esp, [ebp - 0xc]
mov esi, 1
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
mov eax, 0x104
sub eax, edx
mov edx, 0x5c
lea edi, [eax + eax + 0x72a7c760]
xor eax, eax
lea esi, [edi + 2]
mov word [edi], dx
cmp ecx, eax
je 0x72a6a7e1
add eax, 1
mov edi, esi
movzx edx, word [eax + eax + str.printui.dll]
test dx, dx
jne 0x72a6a7c5
xor eax, eax
mov word [edi], ax
jmp 0x72a6a699
mov eax, 0x104
sub eax, edx
mov edx, 0x5c
lea edi, [eax + eax + 0x72a7c980]
xor eax, eax
lea esi, [edi + 2]
mov word [edi], dx
cmp ecx, eax
je 0x72a6a821
add eax, 1
mov edi, esi
movzx edx, word [eax + eax + 0x72a7937a]
test dx, dx
jne 0x72a6a805
xor eax, eax
mov word [edi], ax
jmp 0x72a6a649
mov ecx, 0x72a7c540
jmp 0x72a6a842
mov ecx, edx
movzx eax, word [ebx]
test ax, ax
je 0x72a6a85b
lea edx, [ecx + 2]
mov word [edx - 2], ax
add ebx, 2
lea eax, [ebp - 0x10]
cmp ebx, eax
jne 0x72a6a840
xor eax, eax
mov word [ecx], ax
mov ecx, 0x104
mov eax, 0x72a7c540
lea esi, [esi]
cmp word [eax], 0
lea edx, [ecx - 1]
je 0x72a6a940
add eax, 2
mov ecx, edx
cmp eax, 0x72a7c748
jne 0x72a6a870
mov edx, 0x104
mov eax, 0x72a7c540
cmp word [eax], 0
lea ecx, [edx - 1]
je 0x72a6a910
add eax, 2
mov edx, ecx
cmp eax, 0x72a7c748
jne 0x72a6a893
mov ecx, 0x104
mov eax, 0x72a7c540
cmp word [eax], 0
lea edx, [ecx - 1]
je 0x72a6a720
add eax, 2
mov ecx, edx
cmp eax, 0x72a7c748
jne 0x72a6a8b2
jmp 0x72a6a756
mov dword [esp + 0x14], str.GetSystemDirectoryW_failed_n
mov dword [esp + 0x10], 0x57
mov dword [esp + 0xc], str.InitializePrinterDrivers
mov dword [esp + 8], 0x72a791bd
mov dword [esp + 4], 0x72a76838
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a6a5de
mov eax, 0x104
mov esi, 0x5c
sub eax, edx
add eax, eax
lea edx, [eax + 0x72a7c540]
lea ebx, [eax + 0x72a7c542]
mov word [eax + 0x72a7c540], si
test ecx, ecx
je 0x72a6a980
xor eax, eax
mov word [ebx], ax
jmp 0x72a6a8a8
mov eax, 0x104
sub eax, ecx
mov ecx, 0x5c
lea esi, [eax + eax + 0x72a7c540]
xor eax, eax
lea ebx, [esi + 2]
mov word [esi], cx
cmp edx, eax
je 0x72a6a971
add eax, 1
mov esi, ebx
movzx ecx, word [eax + eax + 0x72a7981c]
test cx, cx
jne 0x72a6a955
xor eax, eax
mov word [esi], ax
jmp 0x72a6a889
mov ebx, edx
jmp 0x72a6a935