Function at 0x1d2c097
Capabilities:
Check if file exists
Create thread
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
sub esp, 0x28
mov eax, 0x1d59c31
call fcn.01d55708
sub esp, 0x35c
push edi
mov eax, 0xd8
mov edi, ecx
mov dword [ebp + 0x20], edi
cmp word [ebp + 0x3c], ax
jae 0x1d2c0c3
xor al, al
jmp 0x1d2c668
push ebx
push esi
push 0x158
lea eax, [ebp - 0x164]
push 0
push eax
call sub.MSVCR100.dll_memset
mov ebx, dword [ebp + 0x38]
mov cx, word [ebx + 0x20]
mov word [ebp - 0x88], cx
mov cx, word [ebx + 0x22]
mov word [ebp - 0x86], cx
mov cl, byte [ebx + 0x24]
mov byte [ebp - 0x84], cl
mov ecx, dword [ebx + 0x10]
lea esi, [ebx + 4]
mov eax, dword [esi]
mov dword [ebp - 0x150], ecx
mov ecx, dword [ebx + 0x18]
add esp, 0xc
mov dword [ebp + 0x14], esi
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x148], ecx
cmp eax, dword [0x1d89370]
jne 0x1d2c132
cmp byte [ebx + 0x1e], 2
jb 0x1d2c132
mov byte [edi + 0x370], 0
mov eax, dword [0x1d89370]
cmp dword [esi], eax
je 0x1d2c24e
lea ecx, [ebp]
call sub.mfc100.dll_Ordinal_421
and dword [ebp - 4], 0
push 0x103
lea eax, [ebp - 0x367]
push 0
push eax
mov byte [ebp - 0x368], 0
call sub.MSVCR100.dll_memset
add esp, 0xc
lea eax, [ebp - 0x368]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x368]
push eax
lea ecx, [ebp + 0x38]
call dword [sym.imp.mfc100.dll_Ordinal_310]
push 0x1d68b50
push eax
lea eax, [ebp + 0x24]
push eax
mov byte [ebp - 4], 1
call fcn.01d06087
add esp, 0xc
lea ecx, [ebp + 0x38]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp + 0x28]
call dword [sym.imp.mfc100.dll_Ordinal_316]
push dword [esi]
lea eax, [ebp + 0x28]
push 0x1d68b5c
push eax
mov byte [ebp - 4], 4
call dword [sym.imp.mfc100.dll_Ordinal_4283]
push 0x1d68b60
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.01d06087
lea ecx, [ebp + 0x28]
push ecx
push eax
lea eax, [ebp + 0x1c]
push eax
mov byte [ebp - 4], 5
call fcn.01d07829
add esp, 0x24
mov ecx, eax
call dword [sym.imp.mfc100.dll_Ordinal_1448]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
neg eax
sbb al, al
inc al
lea ecx, [ebp + 0x1c]
mov byte [ebp + 0x3b], al
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp + 0x18]
call dword [sym.imp.mfc100.dll_Ordinal_901]
cmp byte [ebp + 0x3b], 0
je 0x1d2c230
xor eax, eax
push eax
push eax
push esi
push 0x1d28620
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
lea ecx, [ebp + 0x28]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp + 0x24]
call dword [sym.imp.mfc100.dll_Ordinal_901]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp]
call sub.mfc100.dll_Ordinal_977
cmp byte [edi + 0x370], 0
je 0x1d2c264
mov eax, dword [0x1d89370]
cmp dword [esi], eax
jne 0x1d2c340
mov ax, word [ebx]
mov word [ebp - 0x164], ax
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x160], eax
mov al, byte [ebx + 0x1c]
mov byte [ebp - 0xc4], al
mov al, byte [ebx + 0x1d]
mov byte [ebp - 0xc3], al
mov al, byte [ebx + 0x1e]
mov byte [ebp - 0xc2], al
mov eax, dword [ebx + 8]
mov dword [ebp - 0x154], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x158], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0xac], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebx + 0x34]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebx + 0x44]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebx + 0x4c]
mov dword [ebp - 0x98], eax
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0x94], eax
mov eax, dword [ebx + 0x54]
mov dword [ebp - 0x90], eax
mov eax, dword [ebx + 0x58]
mov dword [ebp - 0x8c], eax
mov ax, word [ebx + 0x5c]
lea esi, [ebx + 0x5e]
lea edi, [ebp - 0x26]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp + 0x14]
mov word [ebp - 0x28], ax
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0x14], eax
xor eax, eax
mov word [ebp + 0xc], ax
mov eax, dword [ebp + 0x3c]
add eax, 0xffffff28
add ebx, 0xd8
mov dword [ebp + 8], vtable.CRecvPacketHelper.0
mov word [ebp + 0xe], ax
mov dword [ebp + 0x10], ebx
lea eax, [ebp + 0x3c]
push eax
lea ecx, [ebp + 8]
mov dword [ebp - 4], 6
call fcn.01d277c6
cmp word [ebp + 0x3e], 0
je 0x1d2c4c7
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpynA]
movzx ecx, word [ebp + 0x3e]
sub ecx, 3
je 0x1d2c468
sub ecx, 6
je 0x1d2c433
dec ecx
dec ecx
je 0x1d2c3eb
sub ecx, 0x122
jne 0x1d2c4b0
cmp byte [edi + 0x370], cl
je 0x1d2c3c2
mov ecx, dword [0x1d89370]
cmp dword [esi], ecx
jne 0x1d2c4b0
cmp word [ebp + 0x3c], 0x20
ja 0x1d2c4b0
movzx ecx, word [ebp + 0x3c]
push ecx
push eax
lea eax, [ebp - 0x104]
push eax
call sub.MSVCR100.dll_memcpy
mov byte [ebp - 0xe5], 0
jmp 0x1d2c4ad
cmp byte [edi + 0x370], 0
je 0x1d2c40d
mov ecx, dword [0x1d89370]
cmp dword [esi], ecx
je 0x1d2c40d
push 0x20
push 0x1d68b70
lea eax, [ebp - 0x124]
jmp 0x1d2c488
cmp word [ebp + 0x3c], 0x20
ja 0x1d2c4b0
movzx ecx, word [ebp + 0x3c]
push ecx
push eax
lea eax, [ebp - 0x124]
push eax
call sub.MSVCR100.dll_memcpy
mov byte [ebp - 0x105], 0
jmp 0x1d2c4ad
cmp byte [edi + 0x370], 0
je 0x1d2c446
mov ecx, dword [0x1d89370]
cmp dword [esi], ecx
jne 0x1d2c4b0
cmp word [ebp + 0x3c], 0x20
ja 0x1d2c4b0
movzx ecx, word [ebp + 0x3c]
push ecx
push eax
lea eax, [ebp - 0xe4]
push eax
call sub.MSVCR100.dll_memcpy
mov byte [ebp - 0xc5], 0
jmp 0x1d2c4ad
cmp byte [edi + 0x370], 0
je 0x1d2c48d
mov ecx, dword [0x1d89370]
cmp dword [esi], ecx
je 0x1d2c48d
push 0x20
push 0x1d68b64
lea eax, [ebp - 0x144]
push eax
call ebx
jmp 0x1d2c4b0
cmp word [ebp + 0x3c], 0x20
ja 0x1d2c4b0
movzx ecx, word [ebp + 0x3c]
push ecx
push eax
lea eax, [ebp - 0x144]
push eax
call sub.MSVCR100.dll_memcpy
mov byte [ebp - 0x125], 0
add esp, 0xc
lea eax, [ebp + 0x3c]
push eax
lea ecx, [ebp + 8]
call fcn.01d277c6
cmp word [ebp + 0x3e], 0
jne 0x1d2c386
push dword [ebp - 0x15c]
lea esi, [edi + 0x3cc]
mov eax, dword [esi]
push esi
call dword [eax + 0x24]
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x1d2c512
mov eax, dword [0x1d8a2e0]
push dword [ebp - 0x15c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
pop ecx
pop ecx
test eax, eax
je 0x1d2c501
mov al, byte [eax + 0xc]
mov byte [ebp - 0x83], al
mov eax, dword [esi]
lea ecx, [ebp - 0x164]
push ecx
push esi
call dword [eax + 0xc]
mov ebx, eax
jmp 0x1d2c51f
lea eax, [edi + 0xa0]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0xc]
pop ecx
pop ecx
test ebx, ebx
je 0x1d2c645
cmp dword [edi + 0x3c4], 0
jne 0x1d2c538
mov dword [edi + 0x3c4], ebx
cmp byte [ebp - 0x84], 2
jb 0x1d2c566
cmp byte [ebp - 0x84], 4
je 0x1d2c566
push ebx
push dword [ebp - 0x86]
lea eax, [edi + 0x12d0]
push dword [ebp - 0x88]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
add esp, 0x10
cmp byte [edi + 0x370], 0
jne 0x1d2c645
cmp dword [edi + 0x3c8], 5
jne 0x1d2c645
cmp byte [ebp - 0x83], 1
je 0x1d2c5f5
cmp dword [ebp - 0x148], 0
jne 0x1d2c5f5
cmp byte [0x1d8a6df], 1
jne 0x1d2c645
push 0xff
lea eax, [ebp - 0x263]
push 0
push eax
mov byte [ebp - 0x264], 0
call sub.MSVCR100.dll_memset
lea eax, [ebp - 0x124]
push eax
push 0x1d68b8c
lea eax, [ebp - 0x264]
push pe_nt_image_headers32
push eax
call dword [sym.imp.MSVCR100.dll__snprintf]
mov eax, dword [edi + 0x4c7c]
mov ecx, dword [eax]
push 1
push 0
push 0
lea edx, [ebp - 0x264]
push edx
push eax
call dword [ecx + 0x38]
add esp, 0x30
jmp 0x1d2c645
push 0xff
lea eax, [ebp - 0x263]
push 0
push eax
mov byte [ebp - 0x264], 0
call sub.MSVCR100.dll_memset
lea eax, [ebp - 0x124]
push eax
push 0x1d68b7c
lea eax, [ebp - 0x264]
push pe_nt_image_headers32
push eax
call dword [sym.imp.MSVCR100.dll__snprintf]
mov eax, dword [edi + 0x4c7c]
mov ecx, dword [eax]
push 0
lea edx, [ebp - 0x264]
push edx
push eax
call dword [ecx + 0x30]
add esp, 0x28
mov ecx, edi
call fcn.01d28d16
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
pop ecx
push eax
push dword [edi + 0xbc]
mov ecx, 0x1d899d4
call fcn.01d30437
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
add ebp, 0x2c
leave
ret 0xc