Function at 0x4386c0
Capabilities:
Create directory
Create process on windows
Delete file
Get common file path
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x44a161
mov eax, dword fs:[0]
push eax
mov eax, 0x2bd8
mov dword fs:[0], esp
call fcn.004213b0
mov eax, dword [0x4668f4]
xor eax, esp
push ebx
push esi
push edi
mov edi, dword [esp + 0x2bf4]
mov dword [esp + 0x2be0], eax
mov eax, dword [esp + 0x2bf8]
push eax
push edi
push str.enter__s_to__s
push 0x246
push str..ZLibpp.cpp
xor ebx, ebx
push ebx
mov dword [esp + 0x3c], eax
mov eax, dword [0x467980]
push str.CZLib::UnZip
push eax
mov esi, ecx
call fcn.0040ebc0
mov eax, dword [esi + 8]
add esp, 0x20
cmp eax, ebx
je 0x43873e
push eax
call fcn.00421dd7
add esp, 4
mov dword [esi + 8], ebx
lea ecx, [esp + 0x6cc]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push ebx
call fcn.004221ed
push eax
lea edx, [esp + 0x6d4]
push edx
lea eax, [esp + 0x4d0]
push str._sTM_ld.txt
push eax
call fcn.004215d3
push 0x104
lea ecx, [esp + 0x2d4]
push ecx
push edi
call fcn.00405790
lea edx, [esp + 0x2dc]
push 0x44c4c0
push edx
call fcn.00421e84
add esp, 0x28
cmp eax, ebx
mov dword [esi + 4], eax
jne 0x4387fd
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
push esi
call fcn.0040f290
push eax
mov eax, dword [0x467980]
push esi
push str.Error_code:__d__error:__s
push 0x25b
push str..ZLibpp.cpp
push ebx
push str.CCZLib::UnZip
push eax
call fcn.0040ebc0
mov ecx, dword [0x467980]
push edi
push str.cant_open__s
push 0x25d
push str..ZLibpp.cpp
push ebx
push str.CZLib::UnZip
push ecx
call fcn.0040ebc0
add esp, 0x40
xor al, al
jmp 0x439164
push ebp
push eax
push 1
lea edx, [esp + 0x20]
push 4
push edx
mov dword [esp + 0x28], ebx
call fcn.00421932
add esp, 0x10
test eax, eax
je 0x438df8
mov ebp, 0x10
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0x8e0]
push 1
push edx
call fcn.00421932
add esp, 0x10
test eax, eax
je 0x438e47
mov edi, dword [esp + 0x28]
mov eax, edi
mov dword [esp + 0x98], 0xf
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x438866
sub eax, edx
push eax
push edi
lea ecx, [esp + 0x88]
call fcn.004014a5
cmp dword [esp + 0x98], ebp
mov eax, dword [esp + 0x84]
mov dword [esp + 0x2bf0], ebx
jae 0x43889b
lea eax, [esp + 0x84]
mov ecx, dword [esp + 0x94]
cmp byte [eax + ecx - 1], 0x5c
je 0x4388bc
push 1
push 0x44c470
lea ecx, [esp + 0x88]
call fcn.004037c0
lea eax, [esp + 0x8d8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4388c6
sub eax, edx
push eax
lea edx, [esp + 0x8dc]
push edx
lea ecx, [esp + 0x88]
call fcn.004037c0
push 1
push 0xffffffffffffffff
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x8c]
mov byte [esp + 0x1c], 0x5c
call fcn.00438620
mov edi, 0xf
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
cmp eax, 0xffffffff
mov byte [esp + 0x2bf0], 1
je 0x4389df
push eax
push ebx
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x8c]
call fcn.0040227e
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xa8]
mov byte [esp + 0x2bfc], 2
call fcn.00401416
cmp dword [esp + 0x7c], ebp
mov byte [esp + 0x2bf0], 1
jb 0x43896f
mov edx, dword [esp + 0x68]
push edx
call fcn.0043beef
add esp, 4
mov eax, dword [esp + 0xb0]
cmp eax, ebx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
jbe 0x4389df
cmp eax, 2
je 0x4389df
cmp dword [esp + 0xb4], ebp
mov eax, dword [esp + 0xa0]
jae 0x4389a2
lea eax, [esp + 0xa0]
push 0x104
lea ecx, [esp + 0xbc]
push ecx
push eax
call fcn.00405790
add esp, 0xc
push ebx
lea edx, [esp + 0xbc]
push edx
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edi, eax
cmp edi, ebx
je 0x4389df
cmp edi, 0x50
je 0x4389df
cmp edi, 0xb7
jne 0x438eac
mov eax, dword [esi + 4]
push eax
push 1
lea ecx, [esp + 0x28]
push 4
push ecx
mov dword [esp + 0x30], ebx
call fcn.00421932
add esp, 0x10
test eax, eax
je 0x438f2d
mov edx, dword [esi + 4]
push edx
push 1
lea eax, [esp + 0x2c]
push 2
push eax
mov dword [esp + 0x34], ebx
call fcn.00421932
add esp, 0x10
test eax, eax
je 0x438f6a
cmp dword [esp + 0x98], ebp
mov eax, dword [esp + 0x84]
jae 0x438a38
lea eax, [esp + 0x84]
push 0x104
lea ecx, [esp + 0xbc]
push ecx
push eax
call fcn.00405790
lea edx, [esp + 0xc4]
push 0x44e524
push edx
call fcn.00421e84
add esp, 0x14
cmp eax, ebx
mov dword [esi], eax
jne 0x438b9e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
push eax
mov eax, dword [0x467980]
push edi
push str.Error_code:__d__error:__s
push 0x2c3
push str..ZLibpp.cpp
push ebx
push str.CCZLib::UnZip
push eax
call fcn.0040ebc0
mov eax, dword [esp + 0xbc]
add esp, 0x24
cmp eax, ebp
mov eax, dword [esp + 0x84]
jae 0x438ab6
lea eax, [esp + 0x84]
mov ecx, dword [0x467980]
push eax
push str.cant_create_file__s__skip_to_the_next_one.
push 0x2c5
push str..ZLibpp.cpp
push ebx
push str.CZLib::UnZip
push ecx
call fcn.0040ebc0
mov eax, dword [esi + 8]
add esp, 0x1c
cmp eax, ebx
jne 0x438b13
lea edx, [esp + 0x4c8]
push 0x44d180
push edx
call fcn.00421e84
add esp, 8
cmp eax, ebx
mov dword [esi + 8], eax
je 0x438b0c
push str.The_following_files_failed_to_copy_to_the_destination:_n_n
push eax
call fcn.004391a4
add esp, 8
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x438b29
lea ecx, [esp + 0xb8]
push ecx
push 0x458024
push eax
call fcn.004391a4
add esp, 0xc
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 4]
push 1
push edx
push eax
call fcn.0042265a
mov eax, dword [esp + 0xc0]
add esp, 0xc
cmp eax, ebp
jb 0x438b57
mov ecx, dword [esp + 0xa0]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x98], ebp
mov edi, 0xf
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
mov dword [esp + 0x2bf0], 0xffffffff
jb 0x438dc2
mov edx, dword [esp + 0x84]
push edx
call fcn.0043beef
add esp, 4
jmp 0x438dc2
push 0x38
lea eax, [esp + 0x30]
push 0x44be44
push eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
call fcn.00439330
lea ecx, [esp + 0x1bf0]
lea edx, [esp + 0xbf0]
add esp, 0xc
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], 0x1000
mov dword [esp + 0x1c], ebx
mov edi, ebx
cmp dword [esp + 0x30], ebx
jne 0x438c38
lea eax, [esp + 0x1be4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp edi, eax
jae 0x438ca9
mov ecx, dword [esi + 4]
sub eax, edi
cmp eax, 0x1000
lea edx, [esp + 0x1be4]
push ecx
jbe 0x438c1e
push 0x1000
jmp 0x438c1f
push eax
push 1
push edx
call fcn.00421932
add edi, eax
add esp, 0x10
cmp eax, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edi
je 0x438ca9
lea eax, [esp + 0x2c]
push ebx
push eax
call fcn.00439470
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov ebp, 0x1000
add esp, 8
sub ebp, eax
je 0x438c9f
xor edi, edi
cmp ebp, ebx
jle 0x438c88
lea ecx, [ecx]
mov ecx, dword [esi]
push ecx
mov edx, ebp
sub edx, edi
push edx
lea eax, [esp + edi + 0xbec]
push 1
push eax
call fcn.00423901
add esp, 0x10
cmp eax, ebx
je 0x438fe4
add edi, eax
cmp edi, ebp
jl 0x438c60
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0xbe4]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], 0x1000
cmp dword [esp + 0x14], ebx
je 0x438be6
lea edx, [esp + 0x2c]
push 4
push edx
call fcn.00439470
mov ebp, eax
mov eax, dword [esp + 0x44]
mov edi, 0x1000
add esp, 8
sub edi, eax
mov dword [esp + 0x14], ebp
je 0x438d3b
jmp 0x438cd0
xor ebp, ebp
cmp edi, ebx
jle 0x438cfe
mov eax, dword [esi]
push eax
mov ecx, edi
sub ecx, ebp
push ecx
lea edx, [esp + ebp + 0xbec]
push 1
push edx
call fcn.00423901
add esp, 0x10
cmp eax, ebx
je 0x439021
add ebp, eax
cmp ebp, edi
jl 0x438cd6
lea eax, [esp + 0xbe4]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x14], ebx
mov dword [esp + 0x3c], 0x1000
jne 0x438d37
lea ecx, [esp + 0x2c]
push 4
push ecx
call fcn.00439470
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov edi, 0x1000
add esp, 8
sub edi, eax
jne 0x438cd0
mov ebp, dword [esp + 0x14]
lea edx, [esp + 0x2c]
push edx
call fcn.0043a8d0
mov eax, dword [esi]
push eax
call fcn.00421dd7
add esp, 8
cmp ebp, ebx
mov dword [esi], ebx
je 0x438d5f
cmp ebp, 1
jne 0x4390e9
mov eax, dword [esp + 0xb4]
mov ebp, 0x10
cmp eax, ebp
jb 0x438d7f
mov ecx, dword [esp + 0xa0]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x98], ebp
mov edi, 0xf
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
mov dword [esp + 0x2bf0], 0xffffffff
jb 0x438dbd
mov edx, dword [esp + 0x84]
push edx
call fcn.0043beef
add esp, 4
mov ebp, 0x10
mov eax, dword [esi + 4]
push eax
push 1
lea ecx, [esp + 0x20]
push 4
push ecx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x94], bl
mov dword [esp + 0x28], ebx
call fcn.00421932
add esp, 0x10
test eax, eax
jne 0x438821
mov edx, dword [esi + 4]
push edx
call fcn.00421dd7
add esp, 4
lea eax, [esp + 0x2c0]
push eax
mov dword [esi + 4], ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x438e40
push eax
call fcn.00421dd7
add esp, 4
push 1
push ebx
push ebx
lea ecx, [esp + 0x4d4]
push ecx
push str.Open
push ebx
mov dword [esi + 8], ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov al, 1
jmp 0x439163
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
mov edx, dword [0x467980]
push eax
push edi
push str.Error_code:__d__error:__s
push 0x26b
push str..ZLibpp.cpp
push ebx
push str.CCZLib::UnZip
push edx
call fcn.0040ebc0
mov eax, dword [0x467980]
push str.fread_error
push 0x26d
push str..ZLibpp.cpp
push ebx
push str.CZLib::UnZip
push eax
call fcn.0040ebc0
mov ecx, dword [esi + 4]
push ecx
call fcn.00421dd7
add esp, 0x40
mov dword [esi + 4], ebx
jmp 0x439161
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, eax
push ebp
call fcn.0040f290
mov edx, dword [0x467980]
push eax
push ebp
push str.Error_code:__d__error:__s
push 0x292
push str..ZLibpp.cpp
push ebx
push str.CCZLib::UnZip
push edx
call fcn.0040ebc0
mov eax, dword [esp + 0xbc]
add esp, 0x24
cmp eax, 0x10
mov eax, dword [esp + 0x84]
jae 0x438efa
lea eax, [esp + 0x84]
push edi
push eax
mov eax, dword [0x467980]
push str.SHCreateDirectoryEx_error:__s__error_code___d
push 0x294
push str..ZLibpp.cpp
push ebx
push str.CZLib::UnZip
push eax
call fcn.0040ebc0
mov ecx, dword [esi + 4]
push ecx
call fcn.00421dd7
add esp, 0x24
jmp 0x439146
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
mov edx, dword [0x467980]
push eax
push edi
push str.Error_code:__d__error:__s
push 0x2a0
push str..ZLibpp.cpp
push ebx
push str.CCZLib::UnZip
push edx
call fcn.0040ebc0
push str.fread_lFileLength_error
push 0x2a2
jmp 0x438fa5
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
mov edx, dword [0x467980]
push eax
push edi
push str.Error_code:__d__error:__s
push 0x2b1
push str..ZLibpp.cpp
push ebx
push str.CCZLib::UnZip
push edx
call fcn.0040ebc0
push str.fread_iFileMask_error
push 0x2b3
mov eax, dword [0x467980]
push str..ZLibpp.cpp
push ebx
push str.CZLib::UnZip
push eax
call fcn.0040ebc0
mov ecx, dword [esi + 4]
push ecx
call fcn.00421dd7
mov eax, dword [esi]
add esp, 0x40
cmp eax, ebx
mov dword [esi + 4], ebx
je 0x439149
push eax
call fcn.00421dd7
add esp, 4
mov dword [esi], ebx
jmp 0x439149
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
mov edx, dword [0x467980]
push eax
push edi
push str.Error_code:__d__error:__s
push 0x30e
push str..ZLibpp.cpp
push ebx
push str.CCZLib::UnZip
push edx
call fcn.0040ebc0
push str.fwrite_error
push 0x310
jmp 0x43905c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
mov edx, dword [0x467980]
push eax
push edi
push str.Error_code:__d__error:__s
push 0x330
push str..ZLibpp.cpp
push ebx
push str.CCZLib::UnZip
push edx
call fcn.0040ebc0
push str.fwrite_error
push 0x332
mov eax, dword [0x467980]
push str..ZLibpp.cpp
push ebx
push str.CZLib::UnZip
push eax
call fcn.0040ebc0
mov ecx, dword [esi + 4]
push ecx
call fcn.00421dd7
mov edx, dword [esi]
add esp, 0x40
push edx
mov dword [esi + 4], ebx
call fcn.00421dd7
mov eax, dword [esp + 0xb8]
mov dword [esi], ebx
mov esi, 0x10
add esp, 4
cmp eax, esi
jb 0x4390ae
mov eax, dword [esp + 0xa0]
push eax
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x98], esi
mov dword [esp + 0xb4], 0xf
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
jb 0x439161
mov ecx, dword [esp + 0x84]
push ecx
call fcn.0043beef
add esp, 4
jmp 0x439161
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
mov edx, dword [0x467980]
push eax
push edi
push str.Error_code:__d__error:__s
push 0x34e
push str..ZLibpp.cpp
push ebx
push str.CCZLib::UnZip
push edx
call fcn.0040ebc0
mov eax, dword [0x467980]
push str.iErr___Z_OK__iErr___Z_STREAM_END
push 0x350
push str..ZLibpp.cpp
push ebx
push str.CZLib::UnZip
push eax
call fcn.0040ebc0
mov ecx, dword [esi + 4]
push ecx
call fcn.00421dd7
add esp, 0x40
mov dword [esi + 4], ebx
lea ecx, [esp + 0x9c]
call fcn.004013ae
lea ecx, [esp + 0x80]
call fcn.004013ae
xor al, al
pop ebp
mov ecx, dword [esp + 0x2be4]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x2bd8]
pop ebx
xor ecx, esp
call fcn.004205fd
add esp, 0x2be4
ret 8