Function at 0x100750a
Capabilities:
Get common file path
Move file
Receive data
Receive data on socket

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x274
mov eax, dword [0x100a370]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
mov dword [ebp - 0x254], eax
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [sym.imp.msvcrt.dll_calloc]
mov dword [ebp - 0x208], eax
mov eax, dword [ebp + 0x10]
push edi
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp + 0x14]
push 0x24
push dword [0x100eec0]
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x214], ebx
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x21c], ebx
mov dword [ebp - 0x218], ebx
mov dword [ebp - 0x22c], 0x800
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x274], ebx
mov dword [ebp - 0x240], ebx
mov dword [ebp - 0x210], ebx
mov dword [ebp - 0x258], ebx
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x234], ebx
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x264], ebx
mov dword [ebp - 0x24c], ebx
mov dword [ebp - 0x250], ebx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
pop ecx
pop ecx
mov dword [ebp - 0x224], eax
cmp eax, ebx
jne 0x10075e1
call edi
push eax
push 0x1001700
jmp 0x1007ccb
push 4
push dword [0x100eec0]
call esi
pop ecx
pop ecx
mov dword [ebp - 0x248], eax
cmp eax, ebx
jne 0x1007604
call edi
push eax
push 0x10016ec
jmp 0x1007ccb
xor edi, edi
cmp dword [0x100eec0], ebx
jle 0x1007674
mov esi, dword [ebp - 0x224]
add esi, 0x18
push dword [0x100c2c8]
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esi - 0x18], eax
cmp eax, ebx
je 0x10076e7
push ebx
push ebx
push 1
mov dword [esi - 4], ebx
push ebx
mov dword [esi], ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [esi + 4], eax
cmp eax, ebx
je 0x10076f8
mov ecx, dword [ebp - 0x248]
mov dword [ecx + edi*4], eax
mov eax, dword [esi - 0x18]
mov dword [esi - 0x10], eax
mov eax, dword [0x100c2c8]
mov dword [esi - 0x14], eax
inc edi
add esi, 0x24
cmp edi, dword [0x100eec0]
jl 0x1007617
mov dword [0x100b4b4], ebx
call fcn.01006a8a
test eax, eax
jne 0x1007cd0
push ebx
push 0x100b860
call sub.msvcrt.dll__setjmp3
pop ecx
pop ecx
test eax, eax
jne 0x1007cd0
mov edi, dword [sym.imp.msvcrt.dll__mbscmp]
push 0x1001318
push dword [ebp - 0x254]
call edi
mov esi, eax
neg esi
push 0x1001384
push dword [ebp - 0x208]
sbb esi, esi
inc esi
call edi
add esp, 0x10
test eax, eax
jne 0x1007709
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x250], 1
jmp 0x100781f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10016d4
jmp 0x1007ccb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10016c0
jmp 0x1007ccb
cmp esi, ebx
jne 0x1007720
push 0x20
push dword [ebp - 0x260]
push dword [ebp - 0x208]
jmp 0x1007805
mov edi, dword [ebp - 0x208]
push ebx
push 0x104
push edi
call fcn.01005b25
test eax, eax
jl 0x1007c98
push edi
call fcn.01005630
test eax, eax
jne 0x1007c98
lea eax, [ebp - 0x204]
push eax
mov esi, 0xf6
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, ebx
je 0x1007c8a
cmp eax, esi
jae 0x1007c8a
lea eax, [ebp - 0x10c]
push eax
push ebx
push 0x10016bc
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x1007c7c
push ebx
push 0x80
push 2
push ebx
push ebx
push 0xc0000000
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
jne 0x10077bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10016a4
jmp 0x1007ccb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x10c]
mov esi, 0x100b940
push esi
mov dword [ebp - 0x258], edi
mov dword [ebp - 0x208], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0x10c]
push esi
mov dword [0x100b4b0], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x20
push dword [ebp - 0x260]
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.msvcrt.dll__fsopen]
mov dword [ebp - 0x214], eax
mov eax, dword [sym.imp.msvcrt.dll_fclose]
mov dword [ebp - 0x230], eax
add esp, 0xc
mov eax, dword [ebp - 0x214]
cmp eax, ebx
jne 0x100786b
push dword [ebp - 0x208]
call fcn.0100565b
mov esi, eax
cmp esi, ebx
je 0x1007858
mov eax, dword [sym.imp.msvcrt.dll__iob]
push esi
add eax, 0x40
push 0x2764
push eax
call fcn.01005f9f
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
call dword [sym.imp.msvcrt.dll__errno]
push dword [eax]
push dword [ebp - 0x208]
jmp 0x1007ccb
mov dword [0x100b4a8], eax
mov eax, dword [ebp - 0x230]
mov dword [0x100b4ac], eax
cmp dword [ebp - 0x25c], ebx
je 0x1007934
push dword [ebp - 0x25c]
call fcn.0100625b
mov esi, eax
cmp esi, ebx
jne 0x10078a7
mov dword [ebp - 0x210], 1
jmp 0x1007cd0
push esi
push dword [ebp - 0x254]
push 0x1001648
push ebx
call fcn.01006949
add esp, 0x10
push esi
push ebx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp edi, 1
jne 0x1007898
xor esi, esi
inc esi
push 0x1001644
mov dword [ebp - 0x240], esi
call fcn.01006d4a
mov dword [ebp - 0x23c], eax
cmp eax, 0xffffffff
je 0x100794f
call dword [sym.imp.msvcrt.dll__errno]
push dword [ebp - 0x214]
mov dword [eax], ebx
call dword [sym.imp.msvcrt.dll__fileno]
pop ecx
mov dword [ebp - 0x268], eax
call dword [sym.imp.msvcrt.dll_clock]
mov dword [ebp - 0x270], eax
mov eax, dword [0x100c2c4]
cmp eax, esi
je 0x1007c31
add eax, 0xfffffffd
cmp eax, esi
ja 0x1007cd0
jmp 0x1007c31
push dword [ebp - 0x254]
push 0x10013b8
push ebx
call fcn.01006949
xor esi, esi
inc esi
add esp, 0xc
cmp eax, esi
je 0x10078d5
mov dword [ebp - 0x210], esi
jmp 0x1007cd0
cmp dword [ebp - 0x250], ebx
jne 0x1007b6e
xor edi, edi
cmp dword [0x100eec0], ebx
jle 0x1007b53
mov esi, dword [ebp - 0x224]
add esi, 0x20
push ebx
lea eax, [esi - 0x14]
push eax
lea eax, [ebp - 0x264]
push eax
push esi
push 1
lea eax, [esi - 0x1c]
push eax
push dword [ebp - 0x23c]
call dword [sym.imp.WS2_32.dll_WSARecv]
test eax, eax
je 0x10079b1
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
jne 0x1007c42
inc dword [ebp - 0x234]
inc dword [ebp - 0x20c]
inc edi
add esi, 0x24
cmp edi, dword [0x100eec0]
jl 0x100797d
jmp 0x1007b53
mov esi, dword [ebp - 0x234]
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x248]
push esi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, 0xffffffff
je 0x1007c4e
sub eax, dword [ebp - 0x220]
js 0x10079f8
inc eax
jmp 0x10079fc
lea eax, [eax + esi + 1]
cmp eax, ebx
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x244], ebx
jle 0x1007b53
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x224]
imul eax, eax, 0x24
lea esi, [eax + ecx]
push 1
lea edi, [esi + 0x20]
and dword [edi], 0
push edi
lea ebx, [esi + 0xc]
push ebx
push dword [ebp - 0x23c]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x1007c56
push dword [esi + 0x1c]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [edi]
dec dword [ebp - 0x20c]
test eax, eax
je 0x1007c6c
push eax
push dword [esi + 8]
push dword [ebp - 0x268]
call dword [sym.imp.msvcrt.dll__write]
add esp, 0xc
test eax, eax
jl 0x1007c56
cdq
add dword [ebp - 0x21c], eax
mov eax, dword [esi]
push 0
adc dword [ebp - 0x218], edx
mov dword [esi + 8], eax
mov ecx, dword [0x100c2c8]
lea eax, [esi + 4]
push ebx
mov dword [eax], ecx
lea ecx, [ebp - 0x264]
push ecx
push edi
push 1
push eax
push dword [ebp - 0x23c]
call dword [sym.imp.WS2_32.dll_WSARecv]
test eax, eax
je 0x1007ac5
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
cmp eax, 0x3e5
jne 0x1007c78
inc dword [ebp - 0x20c]
inc dword [ebp - 0x220]
mov eax, dword [ebp - 0x220]
cmp eax, dword [ebp - 0x234]
jl 0x1007ae6
and dword [ebp - 0x220], 0
xor esi, esi
jmp 0x1007b31
mov eax, dword [ebp - 0x218]
cmp eax, dword [ebp - 0x228]
jl 0x1007b39
jg 0x1007b08
mov eax, dword [ebp - 0x21c]
cmp eax, dword [ebp - 0x22c]
jb 0x1007b39
add dword [ebp - 0x22c], 0x800
push 0x23
adc dword [ebp - 0x228], esi
call dword [sym.imp.msvcrt.dll_putchar]
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
pop ecx
cmp dword [0x100c360], esi
jne 0x1007aea
inc dword [ebp - 0x244]
mov eax, dword [ebp - 0x244]
cmp eax, dword [ebp - 0x26c]
jl 0x1007a10
xor ebx, ebx
cmp dword [0x100b4b4], ebx
je 0x10079ce
mov dword [ebp - 0x24c], 1
jmp 0x1007c1c
push dword [0x100c2c8]
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push ebx
push dword [0x100c2c8]
mov dword [ebp - 0x238], eax
push eax
push dword [ebp - 0x23c]
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
cmp esi, ebx
jle 0x1007cd0
push esi
push dword [ebp - 0x238]
push dword [ebp - 0x268]
call dword [sym.imp.msvcrt.dll__write]
add esp, 0xc
test eax, eax
jl 0x1007cd0
mov eax, esi
cdq
add dword [ebp - 0x21c], eax
adc dword [ebp - 0x218], edx
jmp 0x1007c1c
mov eax, dword [ebp - 0x218]
cmp eax, dword [ebp - 0x228]
jl 0x1007c24
jg 0x1007bf3
mov eax, dword [ebp - 0x21c]
cmp eax, dword [ebp - 0x22c]
jb 0x1007c24
add dword [ebp - 0x22c], 0x800
push 0x23
adc dword [ebp - 0x228], ebx
call dword [sym.imp.msvcrt.dll_putchar]
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
pop ecx
cmp dword [0x100c360], ebx
jne 0x1007bd5
cmp dword [ebp - 0x24c], 1
je 0x1007cd0
cmp dword [0x100b4b4], ebx
je 0x100795a
jmp 0x1007cd0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
jmp 0x1007860
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1007c48
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x208]
call sub.MSWSOCK.dll_s_perror
xor ebx, ebx
jmp 0x1007cd0
mov dword [ebp - 0x24c], 1
jmp 0x1007c68
call esi
jmp 0x1007c5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x100168c
jmp 0x1007ccb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1001678
jmp 0x1007ccb
push edi
call fcn.0100565b
mov esi, eax
cmp esi, ebx
je 0x1007cc2
mov eax, dword [sym.imp.msvcrt.dll__iob]
push esi
add eax, 0x40
push 0x2764
push eax
call fcn.01005f9f
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
call dword [sym.imp.msvcrt.dll__errno]
push dword [eax]
push edi
call sub.MSWSOCK.dll_s_perror
call dword [sym.imp.msvcrt.dll_clock]
mov edi, eax
cmp dword [ebp - 0x214], ebx
je 0x1007cf5
cmp dword [ebp - 0x230], ebx
je 0x1007cf5
push dword [ebp - 0x214]
call dword [ebp - 0x230]
pop ecx
mov esi, 0x100b940
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x100b4b4], ebx
je 0x1007d3e
push 0x100163c
call fcn.0100682a
pop ecx
cmp eax, 4
jne 0x1007d20
push ebx
push ebx
call fcn.010060b6
push ebx
push 0x100b4b4
mov dword [ebp - 0x210], 1
mov dword [ebp - 0x240], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
jmp 0x1007d98
cmp dword [0x100b4b0], ebx
je 0x1007d98
cmp dword [ebp - 0x210], ebx
jne 0x1007d98
cmp dword [ebp - 0x214], ebx
je 0x1007d98
push 3
push dword [ebp - 0x258]
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
je 0x1007d7d
mov dword [ebp - 0x210], ebx
mov dword [0x100b4b0], ebx
jmp 0x1007d98
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1001650
call sub.MSWSOCK.dll_s_perror
mov dword [ebp - 0x210], 1
mov eax, dword [0x100a364]
cmp eax, 0xffffffff
je 0x1007db0
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
or dword [0x100a364], 0xffffffff
mov eax, dword [0x100b4b0]
cmp eax, ebx
je 0x1007dd8
push eax
call fcn.01005609
test eax, eax
je 0x1007dd0
push dword [0x100b4b0]
call dword [sym.imp.msvcrt.dll__unlink]
pop ecx
mov dword [0x100b4b0], ebx
jmp 0x1007ded
cmp dword [ebp - 0x210], ebx
je 0x1007ded
push dword [ebp - 0x208]
call dword [sym.imp.msvcrt.dll__unlink]
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [0x100b4a8], ebx
mov dword [0x100b4ac], ebx
cmp dword [ebp - 0x240], ebx
je 0x1007e10
push 1
push ebx
call fcn.010060b6
cmp dword [ebp - 0x218], ebx
jl 0x1007e4c
jg 0x1007e22
cmp dword [ebp - 0x21c], ebx
jbe 0x1007e4c
cmp dword [0x100c790], ebx
je 0x1007e4c
cmp dword [ebp - 0x274], ebx
jne 0x1007e4c
push edi
push dword [ebp - 0x270]
push dword [ebp - 0x218]
push dword [ebp - 0x21c]
push 2
call fcn.01006343
cmp dword [ebp - 0x20c], ebx
je 0x1007e71
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x248]
push dword [ebp - 0x234]
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
dec dword [ebp - 0x20c]
jne 0x1007e54
cmp dword [ebp - 0x224], ebx
je 0x1007ec5
xor edi, edi
cmp dword [0x100eec0], ebx
jle 0x1007eb8
mov esi, dword [ebp - 0x224]
mov eax, dword [esi]
cmp eax, ebx
je 0x1007e9e
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esi + 0x1c]
cmp eax, ebx
je 0x1007eac
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
add esi, 0x24
cmp edi, dword [0x100eec0]
jl 0x1007e89
push dword [ebp - 0x224]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
cmp dword [ebp - 0x250], 1
jne 0x1007eea
cmp dword [ebp - 0x238], ebx
je 0x1007eea
push dword [ebp - 0x238]
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.01008359
leave
ret 0x10