Function at 0x1004d730
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101daaf0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x360
mov eax, dword [0x10286280]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
xor eax, eax
mov dword [ebp - 0x294], 0
push eax
push 0x1000
push dword [ebp - 0x264]
xorps xmm0, xmm0
mov dword [ebp - 0x290], 7
movups xmmword [ebp - 0x2a4], xmm0
push 0x1000
lea ecx, [ebp - 0x2a4]
mov word [ebp - 0x2a4], ax
call fcn.10050880
cmp dword [ebp - 0x290], 7
lea eax, [ebp - 0x2a4]
cmova eax, dword [ebp - 0x2a4]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
movaps xmm0, xmmword [0x1027ec30]
push 0x14
movups xmmword [ebp - 0x288], xmm0
mov dword [ebp - 0x278], 5
call fcn.101a5826
add esp, 4
mov edi, eax
lea eax, [ebp - 0x288]
push 0x14
push eax
push edi
call fcn.101a7780
add esp, 0xc
lea eax, [ebp - 0xc8]
push 0xb0
push 0
push eax
call fcn.101a7620
add esp, 0xc
mov dword [ebp - 0xc8], 0x1027ec20
xorps xmm0, xmm0
mov dword [ebp - 0xb8], 0x1027ebdc
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x58], 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x54], 0
push 0
push eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
movlpd qword [ebp - 0x48], xmm0
movlpd qword [ebp - 0x40], xmm0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x60], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov dword [ebp - 0x64], 0x50
movlpd qword [ebp - 0xc0], xmm0
call fcn.10050080
mov eax, dword [ebp - 0xb8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xb8], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0xbc], eax
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], 0x1027ebe4
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x20]
mov dword [ebp + ecx - 0xcc], eax
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], 0x1027ebf8
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
xorps xmm0, xmm0
push 8
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0xcc], eax
mov dword [ebp - 0xb0], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
movups xmmword [ebp - 0xac], xmm0
movups xmmword [ebp - 0x9c], xmm0
movups xmmword [ebp - 0x8c], xmm0
call fcn.101a5826
mov esi, eax
xorps xmm0, xmm0
add esp, 4
movq qword [esi], xmm0
push 1
mov dword [ebp - 4], 0
call fcn.101a4d22
add esp, 4
mov dword [esi + 4], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x7c], esi
call fcn.10050020
push 0xac
lea eax, [ebp - 0x358]
mov dword [ebp - 0xb0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
push 0
push eax
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.101a7620
add esp, 0xc
lea eax, [ebp - 0x358]
mov ecx, eax
push eax
call fcn.1004efe0
mov dword [ebp - 0x358], 0x1027ebf0
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x348]
push 0
push 8
mov dword [ebp - 0x268], 5
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x264], 0
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 0x10]
lea eax, [ebp - 0x268]
push eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 0x10]
call fcn.1004c470
mov eax, dword [esi + 0x10]
push 0
push 0x14
push edi
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 0x10]
call fcn.1004c470
lea ecx, [ebp - 0x2d0]
call fcn.1004c660
lea ecx, [ebp - 0x2f4]
call fcn.1004c660
lea ecx, [ebp - 0x304]
call fcn.1004f500
lea ecx, [ebp - 0x324]
call fcn.1004c660
lea ecx, [ebp - 0x344]
call fcn.1004c5c0
lea ecx, [ebp - 0x354]
call fcn.1004f5f0
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0
push 0x98
lea eax, [ebp - 0x348]
push 0
push eax
call fcn.101a7620
add esp, 0xc
lea eax, [ebp - 0x348]
mov ecx, eax
push eax
call fcn.1004e970
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x348], 0x1027ebd4
mov dword [ebp - 0x2b4], eax
lea ecx, [ebp - 0x268]
mov eax, dword [ebp - 0x338]
push 0
push 8
push ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x25c], eax
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 0x10]
call fcn.1004c730
mov eax, dword [ebp - 0x270]
mov esi, eax
mov edx, dword [ebp - 0x274]
sub esi, edx
mov ecx, dword [ebp - 0x268]
sar esi, 2
mov dword [ebp - 0x368], eax
cmp ecx, esi
jae 0x1004db2b
lea eax, [edx + ecx*4]
jmp 0x1004db85
jbe 0x1004db8b
mov eax, dword [ebp - 0x26c]
sub eax, edx
sar eax, 2
cmp ecx, eax
jbe 0x1004db57
push ecx
push ecx
lea ecx, [ebp - 0x274]
call fcn.10051030
mov edx, dword [ebp - 0x274]
mov ecx, dword [ebp - 0x268]
jmp 0x1004db8b
sub ecx, esi
lea esi, [ecx*4]
push esi
push 0
push dword [ebp - 0x368]
call fcn.101a7620
mov eax, dword [ebp - 0x368]
add esp, 0xc
mov edx, dword [ebp - 0x274]
add eax, esi
mov ecx, dword [ebp - 0x268]
mov dword [ebp - 0x270], eax
lea eax, [ecx*4]
mov ecx, dword [ebp - 0x25c]
push 0
push eax
push edx
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x10]
call fcn.1004c730
lea ecx, [ebp - 0x348]
call fcn.1004c850
mov edx, dword [ebp - 0x274]
test edx, edx
je 0x1004dc0d
mov ecx, dword [ebp - 0x26c]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x1004dbe5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004e13a
push ecx
push edx
call fcn.101a5c8a
add esp, 8
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0
lea ecx, [ebp - 0xc8]
call fcn.1004e150
test edi, edi
je 0x1004dc27
push 0x14
push edi
call fcn.101a5c8a
add esp, 8
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, 0x514
mov dword [ebp - 0x368], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
call fcn.1004d680
test al, al
je 0x1004dc6c
mov esi, 0x320
nop
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
call fcn.1004d680
push 0x1e
call edi
sub esi, 1
jne 0x1004dc50
mov esi, dword [ebp - 0x368]
push 0x32
call edi
sub esi, 1
mov dword [ebp - 0x368], esi
jne 0x1004dc38
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x27c], 0
push 0x1027eb44
lea ecx, [ebp - 0x28c]
mov dword [ebp - 0x278], 0
movups xmmword [ebp - 0x28c], xmm0
call fcn.1004cd80
mov dword [ebp - 0x25c], 0
call fcn.10051d60
push 0
mov esi, eax
call fcn.10052fc0
push eax
push esi
call fcn.10051730
add esp, 0xc
lea ecx, [ebp - 0x28c]
cmp dword [ebp - 0x278], 0xf
cmova ecx, dword [ebp - 0x28c]
push dword [ebp - 0x27c]
push ecx
push esi
call fcn.10051770
add esp, 0xc
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0x258]
push eax
push esi
call fcn.10051600
add esp, 0xc
push esi
call fcn.10051cd0
mov ecx, dword [ebp - 0x278]
add esp, 4
cmp ecx, 0xf
jbe 0x1004dd4b
mov edx, dword [ebp - 0x28c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1004dd41
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004e13f
push ecx
push edx
call fcn.101a5c8a
add esp, 8
cmp dword [ebp - 0x294], 0
je 0x1004e0e0
mov dword [ebp - 0x28c], 0
call fcn.1017eb70
mov esi, eax
push 0xfff0b9d8
push esi
mov dword [ebp - 0x28c], esi
mov dword [ebp - 0x288], esi
mov dword [ebp - 0x280], esi
call fcn.1017c060
push 0xfff0b9d8
push esi
call fcn.1017ee00
push 0
push 2
push 0xfff0b9d8
push esi
mov dword [ebp - 0x284], eax
call fcn.1017c180
push 0xfff0b9d8
push esi
call fcn.1017ee00
push 0x1004d120
push esi
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], esi
call fcn.1017b280
push 0
push 0x100505d0
push esi
call fcn.1017be40
add esp, 0x3c
push 0xffffffffffffffff
push esi
call fcn.1017c060
push 0xfff0b9d8
push esi
call fcn.1017ee00
push 0xfffffffffffffffe
push esi
mov edi, eax
call fcn.1017c5e0
add esp, 0x18
test esi, esi
je 0x1004de51
cmp edi, 0xfffffffe
je 0x1004de26
cmp edi, 0xffffffff
je 0x1004de26
mov eax, edi
cdq
push edx
push eax
push 0xfff0b9d8
push esi
call fcn.1017c180
push str.sol.
push esi
call fcn.1017c3c0
add esp, 0x18
jmp 0x1004de42
push esi
call fcn.1017bfc0
add esp, 4
push str.sol.
push esi
call fcn.1017c3c0
add esp, 8
cmp edi, 0xfffffffe
je 0x1004de51
push edi
push 0xfff0b9d8
push esi
call fcn.1017f7c0
add esp, 0xc
push 0x1004ced0
push esi
call fcn.1017bf40
push 0x1027ebc8
push esi
call fcn.1017c3c0
mov ecx, dword [0x1028b014]
add esp, 0x10
mov eax, dword fs:[0x2c]
mov byte [ebp - 0x369], 0
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x288]
mov dword [ebp - 0x368], eax
mov dword [eax + 0x1c], esi
lea eax, [ebp - 0x369]
push eax
call fcn.100505f0
mov edi, dword [ebp - 0x278]
push edi
call fcn.1017bfc0
add esp, 4
push 0x1004d360
push edi
call fcn.1017bf40
push 2
push 0x10051160
push edi
call fcn.1017be40
add esp, 0x14
push 0x1027eb48
push edi
call fcn.1017c3c0
push 0xffffffffffffffff
push edi
call fcn.1017c5e0
mov ecx, dword [ebp - 0x368]
add esp, 0x10
mov eax, dword [0x1028b974]
cmp eax, dword [ecx + 8]
jle 0x1004df21
push 0x1028b974
call fcn.101a57c2
add esp, 4
cmp dword [0x1028b974], 0xffffffff
jne 0x1004df21
push 0x101daf70
call fcn.101a5c70
add esp, 4
push 0x1028b974
call fcn.101a5771
add esp, 4
mov esi, dword [ebp - 0x288]
push esi
call fcn.1017ba30
add esp, 4
mov dword [ebp - 0x264], eax
lea eax, [ebp - 0x218]
push 0x200
push 0
push eax
call fcn.101a7620
add esp, 0xc
cmp dword [0x10286d78], 0
jne 0x1004dfc6
mov eax, 0x1027e9e8
lea ecx, [ebp - 0x218]
xor edx, edx
sub ecx, eax
mov dword [ebp - 0x25c], ecx
nop word [eax + eax]
cmp eax, 0x1027e9e8
je 0x1004dfb0
mov edi, dword [ebp - 0x25c]
inc edx
mov cl, byte [eax]
mov byte [eax + edi], cl
inc eax
mov edi, dword [ebp - 0x278]
cmp edx, 0x1fc
jb 0x1004df70
cmp eax, 0x1027e9e8
je 0x1004dfb0
mov eax, 0x2e2e2e2e
mov word [ebp + edx - 0x218], ax
mov byte [ebp + edx - 0x216], al
add edx, 3
lea eax, [ebp - 0x218]
mov byte [ebp + edx - 0x218], 0
mov dword [ebp - 0x25c], eax
jmp 0x1004dfdf
cmp dword [0x10286d7c], 0xf
mov ecx, 0x10286d68
cmova ecx, dword [0x10286d68]
mov dword [ebp - 0x25c], ecx
mov ecx, dword [ebp - 0x368]
mov eax, dword [0x1028b978]
cmp eax, dword [ecx + 8]
jle 0x1004e022
push 0x1028b978
call fcn.101a57c2
add esp, 4
cmp dword [0x1028b978], 0xffffffff
jne 0x1004e022
push 0x101daf20
call fcn.101a5c70
add esp, 4
push 0x1028b978
call fcn.101a5771
add esp, 4
cmp dword [0x10286d34], 0xf
mov eax, 0x10286d20
cmova eax, dword [0x10286d20]
push eax
push dword [ebp - 0x25c]
push 0
push 0x1027e9e8
push esi
call fcn.1017e910
add esp, 0x14
test eax, eax
jne 0x1004e063
push eax
push eax
push eax
push 0xffffffffffffffff
push eax
push esi
call fcn.1017bd20
add esp, 0x18
test eax, eax
je 0x1004e06c
push esi
call fcn.1017b560
add esp, 4
push esi
call fcn.1017ba30
sub eax, dword [ebp - 0x264]
add esp, 4
test esi, esi
je 0x1004e08b
not eax
push eax
push esi
call fcn.1017c5e0
add esp, 8
test edi, edi
je 0x1004e0a9
mov eax, dword [ebp - 0x27c]
cmp eax, 0xfffffffe
je 0x1004e0a9
push eax
push 0xfff0b9d8
push edi
call fcn.1017f7c0
add esp, 0xc
mov eax, dword [ebp - 0x280]
test eax, eax
je 0x1004e0cd
mov ecx, dword [ebp - 0x284]
cmp ecx, 0xfffffffe
je 0x1004e0cd
push ecx
push 0xfff0b9d8
push eax
call fcn.1017f7c0
add esp, 0xc
mov eax, dword [ebp - 0x28c]
test eax, eax
je 0x1004e0e0
push eax
call fcn.101877e0
add esp, 4
mov ecx, dword [ebp - 0x290]
cmp ecx, 7
jbe 0x1004e11c
mov edx, dword [ebp - 0x2a4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1004e112
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004e144
push ecx
push edx
call fcn.101a5c8a
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.101a575e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.101ab5a5
call fcn.101ab5a5
call fcn.101ab5a5
int3