Function at 0x10003d20
Capabilities:
Get common file path

Disassembly:
sub esp, 0x774
mov ecx, 8
xor eax, eax
cmp word [esp + 0x778], 0x200
push ebx
push esi
push edi
mov esi, str.IFH_Service_Version_1.02_for_Win32
lea edi, [esp + 0xc]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0xb
lea edi, [esp + 0x2f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
jbe 0x10003d63
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x774
ret
xor ebx, ebx
push str.EDIABAS_CONFIG_DIR
mov byte [0x10011194], bl
call fcn.100058bb
add esp, 4
cmp eax, ebx
je 0x10003e29
push 0xf7
push eax
push 0x10011194
call fcn.10005340
mov edi, 0x10011194
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
mov byte [0x1001128a], bl
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, ebx
jle 0x10003de2
cmp byte [ecx + 0x10011193], 0x5c
je 0x10003de2
mov edi, 0x1000d714
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x10011194
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.dgsrv32.ini
or ecx, 0xffffffff
xor eax, eax
push 0x1000d890
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x10011194
mov esi, edi
mov edx, ecx
mov edi, 0x10011194
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.100058a8
add esp, 8
cmp eax, ebx
jne 0x10003f9d
push 0xf7
push 0x10011194
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, 0x10011194
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, ebx
jle 0x10003e82
cmp byte [ecx + 0x10011193], 0x5c
je 0x10003e82
mov edi, 0x1000d714
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x10011194
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.dgsrv32.ini
or ecx, 0xffffffff
xor eax, eax
push 0x1000d890
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x10011194
mov esi, edi
mov edx, ecx
mov edi, 0x10011194
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.100058a8
add esp, 8
cmp eax, ebx
jne 0x10003f9d
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp eax, ebx
jne 0x10003f07
mov eax, dword [str..dgsrv32.ini]
mov ecx, dword [0x1000d884]
mov edx, dword [0x1000d888]
mov dword [0x10011194], eax
mov ax, word [0x1000d88c]
mov dword [0x10011198], ecx
mov dword [0x1001119c], edx
mov word [0x100111a0], ax
jmp 0x10003fa6
push 0x104
push 0x10011194
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x10003f4e
mov ecx, dword [str..dgsrv32.ini]
mov edx, dword [0x1000d884]
mov eax, dword [0x1000d888]
mov dword [0x10011194], ecx
mov cx, word [0x1000d88c]
mov dword [0x10011198], edx
mov dword [0x1001119c], eax
mov word [0x100111a0], cx
jmp 0x10003fa6
push 0x5c
push 0x10011194
call fcn.10005850
add esp, 8
cmp eax, ebx
je 0x10003f66
mov byte [eax + 1], bl
jmp 0x10003f6c
mov byte [0x10011194], bl
mov edi, 0x10011194
or ecx, 0xffffffff
xor eax, eax
mov edx, 0x104
repne scasb al, byte es:[edi]
not ecx
dec ecx
sub edx, ecx
push edx
push str.dgsrv32.ini
push 0x10011194
call fcn.10005210
add esp, 0xc
mov byte [0x10011297], bl
jmp 0x10003fa6
push eax
call fcn.100057cc
add esp, 4
lea eax, [esp + 0x60]
push eax
call fcn.10003840
add esp, 4
test eax, eax
jne 0x10003fe3
mov edi, str.__F__
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xc]
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x100112bc]
mov ebx, 1
cmp eax, ebx
jne 0x10004006
call fcn.10004dc0
lea eax, [esp + 0x360]
push eax
call fcn.10004f40
add esp, 4
lea ecx, [esp + 0x60]
lea edx, [esp + 0x60]
push ecx
push edx
push 0x10011194
call fcn.10002760
add esp, 0xc
test ax, ax
jne 0x1000402e
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x774
ret
mov edx, dword [esp + 0x788]
mov ecx, dword [str.IFH_Service]
mov eax, edx
lea edi, [esp + 0xc]
push ebp
lea ebp, [edx + 0x20]
mov dword [eax], ecx
mov ecx, dword [0x1000d870]
mov dword [eax + 4], ecx
mov ecx, dword [0x1000d874]
mov dword [eax + 8], ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, ebp
lea ebp, [edx + 0xa0]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x264]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
lea ebp, [edx + 0xba]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x764]
lea edi, [esp + 0x564]
mov dword [edx + 0xb6], ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [edx + 0xa8], 0x102
mov eax, ecx
mov esi, edi
mov edi, ebp
mov dword [edx + 0xac], ebx
shr ecx, 2
mov word [edx + 0xb0], 0x800
mov dword [edx + 0xb2], 0x3c
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
lea ebp, [edx + 0x1ba]
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x664]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [edx + 0x2ba], 0x10004170
mov dword [edx + 0x2be], 0x10004190
mov dword [edx + 0x2c2], 0x10004250
mov dword [edx + 0x2c6], 0x10004280
mov dword [edx + 0x2ca], 0x100043b0
mov dword [edx + 0x2ce], 0x10004430
pop ebp
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x774
ret