Function at 0x10015480
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x12f8
call fcn.10032a00
push ebx
push esi
push edi
push 0x10076058
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [0x10076073], 0
jne 0x10016842
cmp byte [0x10076072], 0
jne 0x100154b6
call fcn.10015150
mov ecx, 0x100738ac
call fcn.1001a590
test al, al
je 0x100154ce
cmp word [0x100738c2], 0
jne 0x100154fc
cmp dword [0x100738a4], 0
jbe 0x100154fc
cmp dword [0x100738a8], 0x10
mov eax, 0x10073894
push 0x100738c2
cmovae eax, dword [0x10073894]
mov ecx, 0x100738ac
push 0
push eax
call fcn.1001a100
push 0
call fcn.10043451
mov ecx, dword [0x10073890]
add esp, 4
add ecx, dword [0x1007617c]
mov dword [ebp - 0xc8], eax
cmp eax, ecx
jl 0x10016842
mov dword [0x1007617c], eax
lea eax, [ebp - 0xaf8]
push 0x30a
push eax
call fcn.10025cf0
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0xc4], 0
add esp, 8
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10015560
sub ecx, edx
lea eax, [ebp - 0xaf8]
push ecx
push eax
lea ecx, [ebp - 0xc4]
call fcn.10016a10
cmp dword [ebp - 0xb0], 0x10
lea edx, [ebp - 0xc4]
mov edi, dword [ebp - 0xb4]
cmovae edx, dword [ebp - 0xc4]
or ebx, 0xffffffff
test edi, edi
je 0x100155be
lea eax, [edi - 1]
mov ecx, ebx
cmp eax, ebx
cmovb ecx, eax
add ecx, edx
cmp byte [ecx], 0x5c
je 0x100155ba
mov edi, edi
cmp ecx, edx
je 0x100155be
dec ecx
cmp byte [ecx], 0x5c
jne 0x100155b0
sub ecx, edx
jmp 0x100155c1
or ecx, 0xffffffff
inc ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
cmp edi, ecx
jb 0x10016854
sub edi, ecx
lea eax, [ebp - 0xc4]
cmp edi, 0xffffffff
mov esi, ebx
cmovb esi, edi
cmp dword [ebp - 0xb0], 0x10
cmovae eax, dword [ebp - 0xc4]
add eax, ecx
mov ecx, 0x16
mov dword [ebp - 8], eax
cmp esi, 0xf
ja 0x10015624
push esi
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x18], esi
push eax
call fcn.10034410
mov byte [ebp + esi - 0x28], 0
mov ebx, dword [ebp - 0x28]
jmp 0x1001566e
cmp esi, 0x7fffffff
ja 0x10016859
mov edi, esi
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x10015644
mov edi, closesocket
jmp 0x10015649
cmp edi, ecx
cmovb edi, ecx
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x28]
call fcn.1000a0d0
push esi
push dword [ebp - 8]
mov ebx, eax
mov dword [ebp - 0x18], esi
push ebx
mov dword [ebp - 0x14], edi
call fcn.10034410
mov byte [ebx + esi], 0
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebp - 0x18]
lea esi, [ebp - 0x28]
add esp, 0xc
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x14], 0x10
lea edx, [ebp - 0x28]
lea edi, [ebp - 0x28]
cmovae esi, ebx
cmovae edx, ebx
add esi, ecx
cmp dword [ebp - 0x14], 0x10
cmovae edi, ebx
cmp edi, esi
je 0x100156bd
sub edx, edi
mov dword [ebp - 8], edx
mov ebx, edx
mov edi, edi
movsx eax, byte [edi]
push eax
call fcn.10043585
mov byte [edi + ebx], al
add esp, 4
inc edi
cmp edi, esi
jne 0x100156a0
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x10], ecx
mov esi, dword [ebp - 0x14]
lea edx, [ebp - 0x28]
cmp esi, 0x10
cmovae edx, ebx
test ecx, ecx
je 0x100156ee
or edi, 0xffffffff
lea eax, [ecx - 1]
cmp eax, edi
cmovb edi, eax
add edi, edx
cmp byte [edi], 0x2e
je 0x100156ea
nop
cmp edi, edx
je 0x100156ee
dec edi
cmp byte [edi], 0x2e
jne 0x100156e0
sub edi, edx
jmp 0x100156f1
or edi, 0xffffffff
cmp esi, 0x10
mov dword [ebp - 0x44], 0
lea edx, [ebp - 0x28]
mov dword [ebp - 0x34], 0
cmovae edx, ebx
mov dword [ebp - 0x30], 0
mov dword [ebp - 8], edx
mov eax, closesocket
cmp ecx, 0x10
jae 0x1001573f
mov eax, dword [edx]
mov dword [ebp - 0x44], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x40], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x3c], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], 0xf
jmp 0x1001577a
mov esi, ecx
lea ecx, [ebp - 0x44]
or esi, 0xf
cmp esi, eax
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.1000a0d0
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x44], eax
lea ecx, [ebx + 1]
push ecx
push dword [ebp - 8]
push eax
call fcn.10034410
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x14]
cmp edi, 0xffffffff
je 0x10015808
cmp ecx, edi
mov dword [ebp - 0x5c], 0
lea eax, [ebp - 0x28]
mov dword [ebp - 0x4c], 0
cmovb edi, ecx
mov dword [ebp - 0x48], 0xf
cmp esi, 0x10
lea ecx, [ebp - 0x5c]
push edi
cmovae eax, ebx
push eax
call fcn.10016a10
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x100157e4
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100157da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016868
push edx
push ecx
call fcn.10032490
add esp, 8
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x30], eax
cmp byte [0x10076070], 0
je 0x10015859
push ecx
mov eax, esp
mov dword [eax], 0x10076078
call fcn.10011d50
add esp, 4
test al, al
je 0x10015859
push 0x104
lea eax, [ebp - 0x2d8]
push 0x10076078
push eax
call fcn.1002f060
push 0xffffffffffffffff
push 0x104
lea eax, [ebp - 0x2d8]
push 0x10058a18
push eax
call fcn.1002eeb0
add esp, 0x1c
jmp 0x100158bb
push 0x104
lea eax, [ebp - 0x2d8]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x1001588c
lea eax, [ebp - 0x2d8]
push 0x5c
push eax
call fcn.10033ca0
add esp, 8
test eax, eax
je 0x1001588c
mov byte [eax + 1], 0
jmp 0x100158bb
lea eax, [ebp - 0x2d8]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
jne 0x100158bb
push 0x104
lea eax, [ebp - 0x2d8]
push str.c:_temp_
push eax
call fcn.1002f060
add esp, 0xc
cmp dword [ebp - 0x30], 0x10
lea eax, [ebp - 0x44]
push 0xffffffffffffffff
cmovae eax, dword [ebp - 0x44]
push 0x104
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.1002eeb0
lea edi, [ebp - 0x2d8]
add esp, 0x10
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x100158e6
lea eax, [ebp - 0xc8]
sub edi, ecx
push eax
call fcn.10043a98
mov ecx, dword [ebp + 0x20]
add esp, 4
mov dword [ebp - 8], eax
test ecx, ecx
mov eax, dword [0x10076074]
cmovne eax, ecx
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x10015949
push eax
mov eax, 0x104
sub eax, edi
push 0x1005db94
push eax
lea eax, [ebp - 0x2d8]
add eax, edi
push eax
call fcn.1002ece0
lea edi, [ebp - 0x2d8]
add esp, 0x10
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x10015940
sub edi, ecx
cmp dword [ebp + 0x14], 0
je 0x1001595f
cmp dword [ebp + 0x18], 0
je 0x1001595f
cmp dword [ebp + 0x1c], 0xffffffff
je 0x1001595f
mov bl, 1
jmp 0x10015961
xor bl, bl
mov esi, dword [0x10076288]
mov ecx, esi
mov edx, dword [0x1007628c]
add ecx, 1
push edx
push esi
mov dword [0x10076288], ecx
mov eax, edx
mov ecx, dword [ebp - 8]
adc eax, 0
mov dword [0x1007628c], eax
push dword [ecx]
mov eax, dword [ecx + 0x10]
push dword [ecx + 4]
inc eax
push dword [ecx + 8]
push dword [ecx + 0xc]
push eax
mov eax, dword [ecx + 0x14]
mov ecx, str.crash
add eax, 0x76c
test bl, bl
push eax
mov eax, str.assert
cmove eax, ecx
push eax
mov eax, 0x104
sub eax, edi
push str.__s__d__d__dT_d__d__dC_llu
push eax
lea eax, [ebp - 0x2d8]
add eax, edi
push eax
call fcn.1002ece0
push 0xffffffffffffffff
push 0x104
lea eax, [ebp - 0x2d8]
push str..mdmp
push eax
call fcn.1002eeb0
add esp, 0x40
lea eax, [ebp - 0x2d8]
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x10015b1b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [0x100738d8]
mov ecx, 0x100738c4
mov esi, dword [0x100738c4]
cmp edx, 0x10
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp + 8]
cmovae ecx, esi
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x70], 0xa
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10015a51
mov ebx, dword [0x10076294]
sub ecx, edi
mov edi, dword [0x10076290]
cmp edx, 0x10
mov dword [ebp - 0x64], 1
lea eax, [ecx + 1]
mov dword [ebp - 0x6c], eax
mov eax, 0x100738c4
cmovae eax, esi
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x70]
mov dword [ebp - 0x60], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0
lea ecx, [ebp - 0x64]
push ecx
lea ecx, [ebp - 0xa0]
push ecx
push edi
mov edi, dword [ebp - 8]
push edi
push esi
push eax
call ebx
test eax, eax
je 0x10015ad8
lea eax, [ebp - 0x2d8]
push eax
push str.Saved_dump_file_to__s
lea eax, [ebp - 0x7ec]
push 0x208
push eax
call fcn.1002ece0
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10015b42
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x2d8]
push eax
push str.Failed_to_save_dump_file_to__s__error__d_
lea eax, [ebp - 0x7ec]
push 0x208
push eax
call fcn.1002ece0
add esp, 0x14
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
mov eax, esp
lea ecx, [ebp - 0x2d8]
mov dword [eax], ecx
call fcn.10011cb0
add esp, 4
jmp 0x10015b42
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x2d8]
push eax
push str.Failed_to_create_minidump_file__s__error__d_
lea eax, [ebp - 0x7ec]
push 0x208
push eax
call fcn.1002ece0
add esp, 0x14
cmp byte [0x10076298], 0
je 0x10016765
mov ecx, 0x100738ac
call fcn.1001a590
test al, al
je 0x10016765
cmp word [0x100738c2], 0
je 0x10016765
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
test edi, edi
je 0x10015bef
test ebx, ebx
je 0x10015bef
cmp dword [ebp + 0x14], 0
je 0x10015bef
cmp dword [ebp + 0x18], 0
je 0x10015bef
cmp dword [ebp + 0x1c], 0xffffffff
je 0x10015bef
mov esi, dword [ebp + 8]
push esi
push 0xe
call dword [0x100762a0]
push esi
push 0xe
call dword [0x100762a4]
mov byte [ebp - 1], 1
jmp 0x10015c1f
push dword [ebp + 8]
push 0xe
call dword [0x100762a0]
cmp byte [ebp + 0x24], 0
mov esi, eax
mov byte [ebp - 1], 0
je 0x10015c21
mov esi, dword [ebp + 8]
push esi
push 0xe
call dword [0x100762a4]
push esi
push 0xe
call dword [0x100762a4]
mov byte [ebp - 1], 0
mov esi, eax
push 0x104
lea eax, [ebp - 0x3dc]
mov dword [ebp - 0xd0], 0
push 0
push eax
mov dword [ebp - 0x2c], 0
call fcn.10034990
push 0x104
lea eax, [ebp - 0x5e4]
push 0
push eax
call fcn.10034990
push 0x104
lea eax, [ebp - 0x4e0]
mov dword [ebp - 8], 0
push 0
push eax
call fcn.10034990
add esp, 0x24
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xcc], 0
test esi, esi
je 0x10015d47
push 0x800
lea eax, [ebp - 0x12f8]
push esi
push eax
call fcn.1004385e
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x4e0]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x5e4]
push eax
lea eax, [ebp - 0x3dc]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x12f8]
push str._x:_x___________u_byte_s_________line__u_u_byte_s_
push eax
call fcn.10010580
add esp, 0x34
cmp eax, 3
jl 0x10015d47
mov esi, dword [ebp - 0x2c]
push str.psapi.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp eax, 0xffffffff
je 0x10015d44
push str.GetModuleInformation
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x10015d44
lea eax, [ebp - 0x3dc]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp eax, 0xffffffff
je 0x10015d44
push 0xc
lea ecx, [ebp - 0xa0]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [ebp - 0xc]
test eax, eax
je 0x10015d44
mov eax, dword [ebp - 0xa0]
cmp esi, eax
jbe 0x10015d44
sub esi, eax
mov dword [ebp - 0x2c], esi
lea ecx, [ebp - 0x4e0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10015d50
sub ecx, edx
lea eax, [ebp - 0x4e0]
push ecx
push eax
lea ecx, [ebp - 0x94]
call fcn.10016a10
test edi, edi
je 0x10015dda
test ebx, ebx
je 0x10015dd1
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x10015dc5
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x10015dc5
mov eax, dword [ebp + 0x1c]
cmp eax, 0xffffffff
je 0x10015dc5
push ecx
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x10], eax
call fcn.100150f0
push edi
lea ecx, [ebp - 0x5c]
call fcn.100150f0
push ebx
lea ecx, [ebp - 0x7c]
call fcn.100150f0
push 2
push 0x1005dc7c
lea ecx, [ebp - 0x7c]
call fcn.100168b0
push esi
lea ecx, [ebp - 0x7c]
call fcn.10016880
jmp 0x10015dda
push edi
lea ecx, [ebp - 0x5c]
call fcn.100150f0
push ebx
jmp 0x10015dd2
push edi
lea ecx, [ebp - 0x7c]
call fcn.100150f0
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x28]
mov ebx, dword [ebp - 0x28]
cmp edi, 0x10
cmovae eax, ebx
cmp dword [ebp - 0x18], 9
jne 0x10015f08
cmp dword [eax], 0x61657473
jne 0x10015f08
cmp dword [eax + 4], 0x78652e6d
jne 0x10015f08
cmp byte [eax + 8], 0x65
jne 0x10015f08
mov ecx, str.Steam_
mov eax, 0x10076180
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10015e40
test dl, dl
je 0x10015e3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10015e40
add eax, 2
add ecx, 2
test dl, dl
jne 0x10015e20
xor eax, eax
jmp 0x10015e45
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10015f08
cmp edi, 9
jb 0x10015e7b
cmp edi, 0x10
mov dword [ebp - 0x18], 9
push 9
lea esi, [ebp - 0x28]
cmovae esi, ebx
push 0x1005a6ac
push esi
call fcn.10034410
add esp, 0xc
mov byte [esi + 9], 0
jmp 0x10015f08
mov ecx, edi
mov eax, closesocket
shr ecx, 1
sub eax, ecx
cmp edi, eax
jbe 0x10015e91
mov ebx, closesocket
jmp 0x10015e9e
lea eax, [ecx + edi]
mov ebx, 0xf
cmp eax, ebx
cmova ebx, eax
lea eax, [ebx + 1]
push eax
lea ecx, [ebp - 0x28]
call fcn.1000a0d0
mov ecx, dword [0x1005a6ac]
mov esi, eax
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x14], ebx
mov dword [esi], ecx
mov ecx, dword [0x1005a6b0]
mov dword [esi + 4], ecx
mov cl, byte [0x1005a6b4]
mov byte [esi + 8], cl
mov byte [esi + 9], 0
cmp edi, 0x10
jb 0x10015f05
mov ecx, dword [ebp - 0x28]
inc edi
mov eax, ecx
cmp edi, 0x1000
jb 0x10015efb
mov ecx, dword [ecx - 4]
add edi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016863
push edi
push ecx
call fcn.10032490
add esp, 8
mov dword [ebp - 0x28], esi
mov edi, dword [ebp - 0x80]
lea edx, [ebp - 0x94]
mov esi, dword [ebp - 0x84]
cmp edi, 0x10
cmovae edx, dword [ebp - 0x94]
test esi, esi
je 0x1001607f
or ebx, 0xffffffff
lea eax, [esi - 1]
cmp eax, ebx
mov ecx, ebx
cmovb ecx, eax
add ecx, edx
cmp byte [ecx], 0x5c
je 0x10015f4e
lea ecx, [ecx]
cmp ecx, edx
je 0x1001607f
dec ecx
cmp byte [ecx], 0x5c
jne 0x10015f40
sub ecx, edx
cmp ecx, 0xffffffff
je 0x1001607f
inc ecx
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x98], 0xf
cmp esi, ecx
jb 0x1001685e
sub esi, ecx
lea eax, [ebp - 0x94]
cmp esi, 0xffffffff
cmovb ebx, esi
cmp edi, 0x10
cmovae eax, dword [ebp - 0x94]
add eax, ecx
mov dword [ebp - 0xc], eax
cmp ebx, 0xf
ja 0x10015fc8
push ebx
push eax
lea eax, [ebp - 0xac]
mov dword [ebp - 0x9c], ebx
push eax
call fcn.10034410
mov byte [ebp + ebx - 0xac], 0
mov esi, dword [ebp - 0x98]
mov ebx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0xac]
jmp 0x10016012
cmp ebx, 0x7fffffff
ja 0x10016859
mov esi, ebx
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x10015fe8
mov esi, closesocket
jmp 0x10015ff3
cmp esi, 0x16
mov eax, 0x16
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0xac]
call fcn.1000a0d0
push ebx
push dword [ebp - 0xc]
mov edi, eax
push edi
call fcn.10034410
mov byte [edi + ebx], 0
mov edx, dword [ebp - 0x80]
add esp, 0xc
cmp edx, 0x10
jb 0x1001604c
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10016042
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016863
push edx
push ecx
call fcn.10032490
add esp, 8
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], esi
cmp dword [0x100738d8], 0x10
mov eax, 0x100738c4
push 9
cmovae eax, dword [0x100738c4]
push str.Sys_Error
push eax
call fcn.1003e1f5
add esp, 0xc
test eax, eax
jne 0x100160d8
mov ecx, 0x1e
mov eax, 0x100738c4
cmp dword [0x100738d4], ecx
cmovb ecx, dword [0x100738d4]
cmp dword [0x100738d8], 0x10
push ecx
cmovae eax, dword [0x100738c4]
push eax
call fcn.10011470
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x6c]
xor ecx, ecx
mov dword [ebp - 0x1b4], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x1a0], 0xf
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 0xf
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 0xf
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0xf
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 0xf
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0xf
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0xf
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0xf
test edx, edx
je 0x100161ee
cmp dword [ebp - 0x68], 0x10
lea eax, [ebp - 0x7c]
cmovae eax, dword [ebp - 0x7c]
cmp byte [eax + ecx], 0x22
jne 0x100161e9
mov byte [eax + ecx], 0x27
mov edx, dword [ebp - 0x6c]
inc ecx
cmp ecx, edx
jb 0x100161d1
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
test edx, edx
je 0x1001621d
jmp 0x10016200
cmp dword [ebp - 0x48], 0x10
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
cmp byte [eax + ecx], 0x22
jne 0x10016218
mov byte [eax + ecx], 0x27
mov edx, dword [ebp - 0x4c]
inc ecx
cmp ecx, edx
jb 0x10016200
push 0x100738c4
call fcn.10015120
add esp, 4
cmp byte [ebp - 1], 0
jne 0x10016240
cmp byte [ebp + 0x24], 0
mov dword [ebp - 0x1bc], 1
je 0x1001624a
mov dword [ebp - 0x1bc], 0
mov eax, dword [0x100738ac]
cmp dword [ebp - 0x68], 0x10
mov edi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0xf8]
mov dword [ebp - 0x1d4], eax
mov eax, dword [0x100738b0]
mov dword [ebp - 0x1d0], eax
mov eax, dword [0x100738b4]
mov dword [ebp - 0x1cc], eax
mov eax, dword [0x100738b8]
mov dword [ebp - 0x1c8], eax
mov eax, dword [0x100738bc]
mov dword [ebp - 0x1c4], eax
mov eax, dword [0x100738c0]
mov dword [ebp - 0x1c0], eax
lea eax, [ebp - 0x7c]
cmovae eax, dword [ebp - 0x7c]
mov dword [ebp - 0xd8], 0x10014e10
mov dword [ebp - 0xc], eax
cmp edi, ebx
ja 0x100162db
cmp ebx, 0x10
mov dword [ebp - 0xfc], edi
push edi
lea esi, [ebp - 0x10c]
cmovae esi, dword [ebp - 0x10c]
push eax
push esi
call fcn.10034410
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x10016384
cmp edi, 0x7fffffff
ja 0x10016859
mov esi, edi
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x100162fb
mov esi, closesocket
jmp 0x10016319
mov ecx, ebx
mov eax, closesocket
shr ecx, 1
sub eax, ecx
cmp ebx, eax
jbe 0x10016311
mov esi, closesocket
jmp 0x10016319
lea eax, [ecx + ebx]
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x10c]
call fcn.1000a0d0
push edi
push dword [ebp - 0xc]
mov dword [ebp - 0xf8], esi
mov esi, eax
push esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0xfc], edi
call fcn.10034410
add esp, 0xc
mov byte [edi + esi], 0
cmp ebx, 0x10
jb 0x1001637e
mov ecx, dword [ebp - 0x10c]
inc ebx
mov eax, ecx
cmp ebx, 0x1000
jb 0x10016374
mov ecx, dword [ecx - 4]
add ebx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016863
push ebx
push ecx
call fcn.10032490
add esp, 8
mov dword [ebp - 0x10c], esi
cmp dword [ebp - 0x48], 0x10
lea eax, [ebp - 0x5c]
mov edi, dword [ebp - 0x4c]
cmovae eax, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x14c]
mov dword [ebp - 0x60], eax
cmp edi, ebx
ja 0x100163c9
cmp ebx, 0x10
mov dword [ebp - 0x150], edi
push edi
lea esi, [ebp - 0x160]
cmovae esi, dword [ebp - 0x160]
push eax
push esi
call fcn.10034410
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x10016472
cmp edi, 0x7fffffff
ja 0x10016859
mov esi, edi
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x100163e9
mov esi, closesocket
jmp 0x10016407
mov ecx, ebx
mov eax, closesocket
shr ecx, 1
sub eax, ecx
cmp ebx, eax
jbe 0x100163ff
mov esi, closesocket
jmp 0x10016407
lea eax, [ebx + ecx]
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x160]
call fcn.1000a0d0
push edi
push dword [ebp - 0x60]
mov dword [ebp - 0x14c], esi
mov esi, eax
push esi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x150], edi
call fcn.10034410
add esp, 0xc
mov byte [edi + esi], 0
cmp ebx, 0x10
jb 0x1001646c
mov ecx, dword [ebp - 0x160]
inc ebx
mov eax, ecx
cmp ebx, 0x1000
jb 0x10016462
mov ecx, dword [ecx - 4]
add ebx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016863
push ebx
push ecx
call fcn.10032490
add esp, 8
mov dword [ebp - 0x160], esi
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
mov edi, dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x1a0]
mov dword [ebp - 0x60], eax
cmp edi, ebx
ja 0x100164b7
cmp ebx, 0x10
mov dword [ebp - 0x1a4], edi
push edi
lea esi, [ebp - 0x1b4]
cmovae esi, dword [ebp - 0x1b4]
push eax
push esi
call fcn.10034410
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x1001655f
cmp edi, 0x7fffffff
ja 0x10016859
mov esi, edi
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x100164d7
mov esi, closesocket
jmp 0x100164f4
mov eax, ebx
mov ecx, closesocket
shr eax, 1
sub ecx, eax
cmp ebx, ecx
jbe 0x100164ed
mov esi, closesocket
jmp 0x100164f4
add eax, ebx
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x1b4]
call fcn.1000a0d0
push edi
push dword [ebp - 0x60]
mov dword [ebp - 0x1a0], esi
mov esi, eax
push esi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x1a4], edi
call fcn.10034410
add esp, 0xc
mov byte [edi + esi], 0
cmp ebx, 0x10
jb 0x10016559
mov ecx, dword [ebp - 0x1b4]
inc ebx
mov eax, ecx
cmp ebx, 0x1000
jb 0x1001654f
mov ecx, dword [ecx - 4]
add ebx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016863
push ebx
push ecx
call fcn.10032490
add esp, 8
mov dword [ebp - 0x1b4], esi
cmp dword [ebp - 0x80], 0x10
lea eax, [ebp - 0x94]
push dword [ebp - 0x84]
cmovae eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x184]
push eax
call fcn.10016a10
lea ecx, [ebp - 0x2d8]
lea edx, [ecx + 1]
jmp 0x10016590
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10016590
sub ecx, edx
lea eax, [ebp - 0x2d8]
push ecx
push eax
lea ecx, [ebp - 0x148]
call fcn.10016a10
lea ecx, [ebp - 0x3dc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100165b5
sub ecx, edx
lea eax, [ebp - 0x3dc]
push ecx
push eax
lea ecx, [ebp - 0x19c]
call fcn.10016a10
mov eax, dword [ebp - 8]
mov ecx, 0x100762a8
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x10]
lea edx, [ecx + 1]
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x1b8], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10016610
sub ecx, edx
push ecx
push 0x100762a8
lea ecx, [ebp - 0x130]
call fcn.10016a10
movzx eax, word [0x100762b8]
lea ecx, [ebp - 0xf4]
mov word [ebp - 0x118], ax
movzx eax, word [0x100762bc]
mov word [ebp - 0x116], ax
mov al, byte [0x1007629a]
mov byte [ebp - 0x114], al
mov eax, dword [ebp + 0x28]
push 0x100738c4
mov dword [ebp - 0x110], eax
call fcn.100150c0
lea eax, [ebp - 0x1d4]
push eax
call fcn.1001b900
add esp, 4
test eax, eax
je 0x10016697
push eax
push str.Failed_to_upload_crash_report:_error__d
lea eax, [ebp - 0x7ec]
push 0x208
push eax
call fcn.1002ece0
add esp, 0x10
lea ecx, [ebp - 0x1d4]
call fcn.10014e40
mov edx, dword [ebp - 0x68]
cmp edx, 0x10
jb 0x100166d6
mov ecx, dword [ebp - 0x7c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100166cc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016863
push edx
push ecx
call fcn.10032490
add esp, 8
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
cmp edx, 0x10
jb 0x1001671c
mov ecx, dword [ebp - 0x5c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10016712
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016863
push edx
push ecx
call fcn.10032490
add esp, 8
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
cmp edx, 0x10
jb 0x10016765
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1001675b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016863
push edx
push ecx
call fcn.10032490
add esp, 8
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x10016799
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1001678f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016868
push edx
push ecx
call fcn.10032490
add esp, 8
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
cmp edx, 0x10
jb 0x100167df
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100167d5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016868
push edx
push ecx
call fcn.10032490
add esp, 8
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
cmp edx, 0x10
jb 0x10016827
mov ecx, dword [ebp - 0xc4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1001681d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016868
push edx
push ecx
call fcn.10032490
add esp, 8
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0xf
mov byte [ebp - 0xc4], 0
push 0x10076058
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10016870
call fcn.10011070
call fcn.10016870
call fcn.1003a720
call fcn.1003a720
int3