Function at 0x41ac30
Capabilities:
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x69e25b
mov eax, dword fs:[0]
push eax
sub esp, 0xb38
mov eax, dword [0x7e2670]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xb40], ecx
cmp dword [ebp + 8], 0
je 0x41ac6d
cmp dword [ebp + 0xc], 0
jne 0x41ac93
push 0x6d3af8
call fcn.0066610b
add esp, 4
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
or eax, 0xffffffff
jmp 0x41b2a2
mov eax, dword [ebp - 0xb40]
mov ecx, dword [ebp + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0xb40]
mov eax, dword [ebp + 0xc]
mov dword [edx + 0x14], eax
mov ecx, dword [ebp - 0xb40]
mov edx, dword [ecx + 8]
push edx
push 0x6d3b20
push 0x6d3b2c
call fcn.0066610b
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
push 0x6d3b34
push 0x6d3b38
call fcn.0066610b
add esp, 0xc
cmp dword [ebp + 0x10], 0
je 0x41acf9
mov ecx, dword [ebp + 0x10]
push ecx
push 0x6d3b40
push 0x6d3b4c
call fcn.0066610b
add esp, 0xc
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0xb40]
call fcn.0041abb0
test eax, eax
jne 0x41ad25
or eax, 0xffffffff
jmp 0x41b2a2
mov byte [ebp - 0x414], 0
push 0x3ff
push 0
lea eax, [ebp - 0x413]
push eax
call fcn.006665c0
add esp, 0xc
mov byte [ebp - 0x62c], 0
push 0x103
push 0
lea ecx, [ebp - 0x62b]
push ecx
call fcn.006665c0
add esp, 0xc
mov byte [ebp - 0x51c], 0
push 0x103
push 0
lea edx, [ebp - 0x51b]
push edx
call fcn.006665c0
add esp, 0xc
mov dword [ebp - 0x520], 0xffffffff
mov byte [ebp - 0x734], 0
push 0x103
push 0
lea eax, [ebp - 0x733]
push eax
call fcn.006665c0
add esp, 0xc
lea ecx, [ebp - 0x734]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov dword [ebp - 0x738], 1
jmp 0x41add0
mov edx, dword [ebp - 0x738]
add edx, 1
mov dword [ebp - 0x738], edx
cmp dword [ebp - 0x738], 6
jg 0x41b28f
push 0x400
push 0
lea eax, [ebp - 0x414]
push eax
call fcn.006665c0
add esp, 0xc
push 0x104
push 0
lea ecx, [ebp - 0x51c]
push ecx
call fcn.006665c0
add esp, 0xc
push 0x104
push 0
lea edx, [ebp - 0x62c]
push edx
call fcn.006665c0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x62c]
push eax
call fcn.0049f360
add esp, 8
lea ecx, [ebp - 0x62c]
push ecx
lea ecx, [ebp - 0x73c]
call fcn.0040dbe0
mov dword [ebp - 4], 0
push str._binFibocom_sc138
lea edx, [ebp - 0x73c]
push edx
call fcn.0040e0f0
add esp, 8
push 0
lea ecx, [ebp - 0x73c]
call fcn.004018a0
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmp dword [ebp - 0x738], 1
jne 0x41ae93
push str._binFibocom_sc138QSaharaServer.exe
lea eax, [ebp - 0x62c]
push eax
call fcn.00666bb0
add esp, 8
jmp 0x41aea7
push str._binFibocom_sc138_fh_loader.exe
lea ecx, [ebp - 0x62c]
push ecx
call fcn.00666bb0
add esp, 8
cmp dword [ebp - 0x738], 2
jne 0x41aec7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x73c]
call fcn.004014d0
jmp 0x41adc1
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x51c]
push eax
call fcn.00666ba0
add esp, 8
mov byte [ebp - 0xb3c], 0
push 0x3ff
push 0
lea ecx, [ebp - 0xb3b]
push ecx
call fcn.006665c0
add esp, 0xc
mov edx, dword [ebp - 0x738]
mov dword [ebp - 0xb44], edx
mov eax, dword [ebp - 0xb44]
sub eax, 1
mov dword [ebp - 0xb44], eax
cmp dword [ebp - 0xb44], 5
ja case.default.0x41af25
mov ecx, dword [ebp - 0xb44]
jmp dword [ecx*4 + 0x41b2c0]
push str.prog_firehose_ddr.elf
lea edx, [ebp - 0x51c]
push edx
call fcn.00666bb0
add esp, 8
lea eax, [ebp - 0x51c]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x62c]
push edx
push str._s__v_1__u__s__s_13:__s___c_1__x
lea eax, [ebp - 0x414]
push eax
call fcn.0066926d
add esp, 0x14
push str.download_prog_firehose_ddr.elf_r_n
lea ecx, [ebp - 0xb3c]
push ecx
call fcn.00666ba0
add esp, 8
jmp case.default.0x41af25
push str.FHLoaderErase.xml
lea edx, [ebp - 0x51c]
push edx
call fcn.00666bb0
add esp, 8
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x51c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x62c]
push eax
push 0x6d3c28
lea ecx, [ebp - 0x414]
push ecx
call fcn.0066926d
add esp, 0x18
push str.download_FHLoaderErase.xml_r_n
lea edx, [ebp - 0xb3c]
push edx
call fcn.00666ba0
add esp, 8
jmp case.default.0x41af25
push str._rawprogram0_pax_fac.xml
lea eax, [ebp - 0x51c]
push eax
call fcn.00666bb0
add esp, 8
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x51c]
push edx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x62c]
push ecx
push 0x6d3d00
lea edx, [ebp - 0x414]
push edx
call fcn.0066926d
add esp, 0x18
push str.download_rawprogram0.xml_r_n
lea eax, [ebp - 0xb3c]
push eax
call fcn.00666ba0
add esp, 8
push str.dlrom.dl25___r_n
call fcn.0066610b
add esp, 4
jmp case.default.0x41af25
push str.patch0.xml
lea ecx, [ebp - 0x51c]
push ecx
call fcn.00666bb0
add esp, 8
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x51c]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x62c]
push edx
push str._s___port.COM_s___sendxml__s____search_path__s____noprompt___showpercentagecomplete___zlpawarehost1___memoryname_emmc_
lea eax, [ebp - 0x414]
push eax
call fcn.0066926d
add esp, 0x18
push str.download_patch0.xml_r_n
lea ecx, [ebp - 0xb3c]
push ecx
call fcn.00666ba0
add esp, 8
push str.dlrom.dl50___r_n
call fcn.0066610b
add esp, 4
jmp case.default.0x41af25
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x62c]
push eax
push str._s___port.COM_s___setactivepartition0___noprompt___showpercentagecomplete___zlpawarehost1___memoryname_emmc_
lea ecx, [ebp - 0x414]
push ecx
call fcn.0066926d
add esp, 0x10
push str.download_setactivepartition_r_n
lea edx, [ebp - 0xb3c]
push edx
call fcn.00666ba0
add esp, 8
push str.dlrom.dl75___r_n
call fcn.0066610b
add esp, 4
jmp case.default.0x41af25
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x62c]
push ecx
push str._s___port.COM_s___reset___noprompt___showpercentagecomplete___zlpawarehost1___memoryname_emmc_
lea edx, [ebp - 0x414]
push edx
call fcn.0066926d
add esp, 0x10
push str.download_reset_r_n
lea eax, [ebp - 0xb3c]
push eax
call fcn.00666ba0
add esp, 8
push str.wait_5s_to_reset._r_n
call fcn.0066610b
add esp, 4
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
lea ecx, [ebp - 0x51c]
push ecx
call fcn.0066a29a
add esp, 8
cmp eax, 0xffffffff
jne 0x41b198
lea edx, [ebp - 0x51c]
push edx
push 0x6d3f78
call fcn.0066610b
add esp, 8
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
mov dword [ebp - 0x520], 0xffffffff
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x73c]
call fcn.004014d0
jmp 0x41b28f
lea eax, [ebp - 0xb3c]
push eax
call fcn.0066610b
add esp, 4
lea ecx, [ebp - 0x414]
push ecx
push 0x6d3f98
call fcn.0066610b
add esp, 8
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
push 0
lea edx, [ebp - 0x520]
push edx
lea eax, [ebp - 0x414]
push eax
mov ecx, dword [ebp - 0xb40]
call fcn.0041bd70
test eax, eax
je 0x41b23c
cmp dword [ebp - 0x520], 0
je 0x41b23a
mov ecx, dword [ebp - 0x520]
push ecx
push 0x6d3fa0
call fcn.0066610b
add esp, 8
push str.errormsgERROR_DOWNLOAD_FIBOCOMSC138_r_n
call fcn.0066610b
add esp, 4
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x73c]
call fcn.004014d0
jmp 0x41b28f
jmp 0x41b278
push 0x6d3fd8
call fcn.0066610b
add esp, 4
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
mov dword [ebp - 0x520], 0xffffffff
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x73c]
call fcn.004014d0
jmp 0x41b28f
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x73c]
call fcn.004014d0
jmp 0x41adc1
lea edx, [ebp - 0x734]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [ebp - 0x520]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006665ac
mov esp, ebp
pop ebp
ret 0xc