Function at 0x40148c
Capabilities:
Create directory
Create tcp socket
Get common file path
Send data
Send data on socket
Send http request
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x11b8]
mov eax, 0x1238
call fcn.00408e30
mov eax, dword [0x40e060]
xor eax, ebp
mov dword [ebp + 0x11b4], eax
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov esi, 0x40bb8c
cmp byte [edi + 0x4148], bl
jne 0x4014cd
push esi
lea eax, [edi + 0x3d38]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
cmp byte [edi + 0x4149], bl
jne 0x4014e3
push esi
lea eax, [edi + 0x3f40]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea eax, [edi + 0x3d38]
push esi
push eax
mov dword [ebp - 0x7c], eax
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x401806
mov esi, 0x206
push esi
mov word [ebp + 0xf9c], ax
lea eax, [ebp + 0xf9e]
push ebx
push eax
call fcn.00406a70
add esp, 0xc
lea eax, [ebp + 0xf9c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor eax, eax
push esi
mov word [ebp + 0xd94], ax
lea eax, [ebp + 0xd96]
push ebx
push eax
call fcn.00406a70
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [ebp + 0xd94]
push str.DVR__08x
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp + 0xd94]
push eax
lea eax, [ebp + 0xf9c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push ebx
lea eax, [ebp + 0xf9c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x204
lea eax, [ebp + 0xb90]
push ebx
push eax
mov dword [ebp + 0xb8c], 0x7e
call fcn.00406a70
add esp, 0xc
push dword [ebp - 0x7c]
lea eax, [ebp + 0xb8c]
push ebx
push eax
lea eax, [ebp + 0xf9c]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
push 6
push 1
push 2
call sub.WS2_32.dll_socket
mov dword [ebp - 0x78], eax
lea eax, [edi + 0x4180]
cmp eax, ebx
je 0x401613
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x401613
add eax, eax
mov dword [ebp - 0x80], eax
call fcn.004088d0
mov esi, esp
cmp esi, ebx
je 0x401613
push ebx
push ebx
push dword [ebp - 0x80]
lea eax, [edi + 0x4180]
push esi
push 0xffffffffffffffff
push eax
push ebx
push 3
mov byte [esi], bl
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x401615
xor eax, eax
push dword [edi + 0x4388]
mov esi, eax
lea ebx, [ebp - 0x78]
call fcn.00402735
test al, al
jne 0x40163e
cmp dword [ebp - 0x78], 0
je 0x401637
push dword [ebp - 0x78]
call sub.WS2_32.dll_closesocket
xor eax, eax
jmp 0x401809
mov edi, 0x3ff
push edi
xor esi, esi
lea eax, [ebp - 0x73]
push esi
push eax
mov byte [ebp - 0x74], 0
call fcn.00406a70
lea eax, [ebp - 0x74]
push str.GET__manifest_DVRobot.dll_HTTP_1.1_r_n_r_n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov ebx, eax
add esp, 0x14
test ebx, ebx
jle 0x40168a
push 0
mov eax, ebx
sub eax, esi
push eax
lea eax, [ebp + esi - 0x74]
push eax
push dword [ebp - 0x78]
call sub.WS2_32.dll_send
test eax, eax
jle 0x40168a
add esi, eax
cmp esi, ebx
jl 0x40166c
push edi
lea eax, [ebp + 0x78d]
push 0
push eax
mov byte [ebp + 0x78c], 0
call fcn.00406a70
add esp, 0xc
xor ebx, ebx
xor edi, edi
lea esi, [ebp + 0x78c]
push 1
push esi
lea eax, [ebp - 0x78]
push eax
call fcn.004027c0
sub edi, ebx
je 0x4016e6
dec edi
je 0x4016d9
dec edi
je 0x4016d0
dec edi
jne 0x4016e2
cmp byte [esi], 0xa
jne 0x4016e2
push 4
pop edi
jmp 0x4016f0
cmp byte [esi], 0xd
jne 0x4016e2
push 3
jmp 0x4016cd
cmp byte [esi], 0xa
jne 0x4016e2
push 2
jmp 0x4016cd
xor edi, edi
jmp 0x4016f0
xor eax, eax
cmp byte [esi], 0xd
sete al
mov edi, eax
inc esi
cmp edi, 4
jne 0x4016ad
mov esi, str.Content_Length:
lea edi, [ebp + 0x11a4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 0x11a4]
push eax
lea eax, [ebp + 0x78c]
movsd dword es:[edi], dword [esi]
push eax
xor edi, edi
call fcn.00402930
pop ecx
pop ecx
cmp eax, ebx
je 0x40172c
add eax, 0x10
push eax
call fcn.004029cc
pop ecx
mov edi, eax
mov esi, 0x40bc90
lea eax, [ebp + 0x78c]
push esi
push eax
call fcn.004029d7
push esi
push ebx
call fcn.004029d7
push eax
call fcn.004029cc
add esp, 0x14
cmp eax, 0xc8
je 0x40175d
cmp dword [ebp - 0x78], ebx
jmp 0x40162d
push ebx
push 0x80
push 2
push ebx
push 2
push 0x40000000
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x7c], eax
mov ebx, edi
test edi, edi
jle 0x4017de
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
mov esi, 0x400
and dword [ebp - 0x80], 0
cmp ebx, esi
lea eax, [ebp + 0x38c]
jl 0x4017ba
push esi
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.004027c0
push 0
lea eax, [ebp - 0x80]
push eax
push esi
lea eax, [ebp + 0x38c]
push eax
push dword [ebp - 0x7c]
call edi
sub ebx, esi
jmp 0x4017da
push ebx
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.004027c0
push 0
lea eax, [ebp - 0x80]
push eax
push ebx
lea eax, [ebp + 0x38c]
push eax
push dword [ebp - 0x7c]
call edi
xor ebx, ebx
test ebx, ebx
jg 0x40178a
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x4017ef
and dword [ebp - 0x78], 0
push eax
call sub.WS2_32.dll_closesocket
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x78], 0
je 0x401806
push dword [ebp - 0x78]
call sub.WS2_32.dll_closesocket
xor eax, eax
inc eax
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x11b4]
xor ecx, ebp
call fcn.0040283c
add ebp, 0x11b8
leave
ret