Function at 0x1000b580
Capabilities:
Get common file path

Disassembly:
push 0x880
mov eax, 0x10027d08
call fcn.100265a9
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x86c], ecx
mov dword [ebp - 0x874], eax
test edi, edi
je 0x1000bc02
test ecx, ecx
je 0x1000bc02
mov edi, dword [edi]
mov ebx, dword [ecx]
test edi, edi
je 0x1000bc02
test ebx, ebx
je 0x1000bc02
test eax, eax
jne 0x1000b607
cmp ebx, dword [edi + 0x20]
jne 0x1000b5ed
push 0
push dword [edi + 0x28]
inc eax
push dword [edi]
mov word [edi + 0x26c], ax
call fcn.10022c37
add esp, 0xc
jmp 0x1000bc02
cmp dword [ebx + 0x60], 0
je 0x1000bc02
push dword [ebx + 0x60]
push edi
call fcn.10022c37
pop ecx
pop ecx
jmp 0x1000bc02
xor edx, edx
inc edx
cmp ebx, dword [edi + 0x20]
jne 0x1000b613
mov word [edi + 0x32], dx
mov word [ebx + 0x4c], dx
xor edx, edx
mov dword [ebp - 0x824], 0xf
mov dword [ebp - 0x828], edx
mov byte [ebp - 0x838], dl
mov esi, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x870], eax
cmp dword [ecx + 8], esi
je 0x1000b6eb
push 4
push dword [ecx + 8]
push str.file
call dword [sym.imp.MSVCR120.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x1000b6eb
movzx eax, word [edi + 0x26a]
push 0xa
pop ecx
cmp ax, cx
ja 0x1000b67b
jne 0x1000b6eb
xor eax, eax
inc eax
cmp word [edi + 0x268], ax
jb 0x1000b6eb
call fcn.1000c881
test al, al
jne 0x1000b6eb
push dword [ebp - 0x874]
lea ecx, [ebp - 0x868]
call fcn.10022c37
xor eax, eax
inc eax
mov byte [ebp - 4], al
lea eax, [ebp - 0x868]
push eax
call fcn.10001e8f
pop ecx
mov esi, eax
lea ecx, [ebp - 0x868]
xor eax, eax
push eax
mov byte [ebp - 4], al
inc eax
push eax
call fcn.10022c37
test esi, esi
je 0x1000b6eb
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
test al, al
mov ecx, esi
mov eax, dword [esi]
je 0x1000b6db
call dword [eax + 0x18]
mov dword [ebp - 0x870], eax
jmp 0x1000b6e3
push 1
call dword [eax]
xor eax, eax
mov esi, eax
test esi, esi
jne 0x1000b779
call fcn.1000c881
test al, al
jne 0x1000b779
push dword [edi + 8]
call fcn.10022c37
pop ecx
test al, al
je 0x1000b779
xor eax, eax
push eax
push 0x104
lea eax, [ebp - 0x114]
push eax
push dword [edi + 8]
call fcn.10022c37
add esp, 0x10
test eax, eax
je 0x1000b735
lea eax, [ebp - 0x114]
push eax
push 0x104
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 0x18
lea eax, [ebp - 0x114]
mov ecx, esp
push eax
call fcn.10022c37
lea eax, [ebp - 0x838]
push eax
push dword [ebp - 0x874]
call fcn.100067ce
add esp, 0x20
test al, al
je 0x1000b779
cmp dword [ebp - 0x824], 0x10
lea eax, [ebp - 0x838]
cmovae eax, dword [ebp - 0x838]
mov dword [ebp - 0x870], eax
xor eax, eax
mov dword [ebp - 0x83c], 0xf
mov dword [ebp - 0x840], eax
mov byte [ebp - 0x850], al
mov byte [ebp - 4], 2
call fcn.1000c881
test al, al
je 0x1000b806
push dword [ebp - 0x874]
call dword [sym.imp.SHLWAPI.dll_PathIsURLA]
test eax, eax
je 0x1000b806
lea eax, [ebp - 0x820]
push eax
push 0x104
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 0x18
lea eax, [ebp - 0x820]
mov ecx, esp
push eax
call fcn.10022c37
lea eax, [ebp - 0x850]
push eax
push dword [ebp - 0x874]
call fcn.10006b68
add esp, 0x20
test al, al
je 0x1000b806
cmp dword [ebp - 0x83c], 0x10
lea eax, [ebp - 0x850]
cmovae eax, dword [ebp - 0x850]
mov dword [ebp - 0x870], eax
jmp 0x1000b80c
mov eax, dword [ebp - 0x870]
push 0
push 0x7fffffff
push eax
call fcn.10022c37
mov ecx, dword [ebp - 0x86c]
inc eax
mov dword [ebp - 0x888], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x880], eax
mov eax, dword [ebx + 0x2c]
push 0
mov dword [ebp - 0x87c], eax
mov eax, dword [ecx + 8]
push 0x7fffffff
push eax
mov dword [ebp - 0x88c], eax
call fcn.10022c37
inc eax
mov dword [ebp - 0x884], eax
xor eax, eax
push 0x3ff
push eax
mov byte [ebp - 0x71c], al
lea eax, [ebp - 0x71b]
push eax
call sub.MSVCR120.dll_memset
or dword [ebp - 0x878], 0xffffffff
add esp, 0x24
call fcn.1000c881
test al, al
je 0x1000b889
xor eax, eax
inc eax
mov word [ebx + 0x5e], ax
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x31c], ax
lea eax, [ebp - 0x31a]
push eax
call sub.MSVCR120.dll_memset
mov eax, dword [ebp - 0x870]
add esp, 0xc
test eax, eax
je 0x1000b8e6
push 0x104
lea ecx, [ebp - 0x31c]
push ecx
push 0xffffffffffffffff
push eax
push 8
xor eax, eax
push eax
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
test eax, eax
je 0x1000b8e6
xor eax, eax
inc eax
push eax
push eax
lea eax, [ebp - 0x31c]
push eax
push dword [edi + 8]
call fcn.10022c37
add esp, 0x10
xor eax, eax
cmp word [ebx + 0x5e], ax
je 0x1000b98b
call fcn.1000c881
test al, al
je 0x1000b928
test esi, esi
je 0x1000b90a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
xor ecx, ecx
jmp 0x1000b90e
xor ecx, ecx
mov eax, ecx
push ecx
push ecx
push eax
test esi, esi
mov eax, str.MMFS
mov ecx, 0x1002a665
cmove eax, ecx
push eax
push str.CstringUTF8
jmp 0x1000b953
test esi, esi
je 0x1000b937
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
xor ecx, ecx
jmp 0x1000b93b
xor ecx, ecx
mov eax, ecx
push ecx
push ecx
push eax
test esi, esi
mov eax, str.MMFS
mov ecx, 0x1002a665
cmove eax, ecx
push eax
push str.Cstring
push dword [ebp - 0x884]
mov eax, dword [ebp - 0x870]
push dword [ebp - 0x88c]
push dword [ebp - 0x87c]
push dword [ebp - 0x880]
push dword [ebp - 0x888]
push eax
push dword [ebx + 0x24]
push dword [edi + 8]
call fcn.10022c37
add esp, 0x34
jmp 0x1000bbba
mov dword [ebp - 0x874], eax
lea eax, [ebp - 0x874]
push eax
push dword [ebx + 0x28]
call fcn.100077ff
pop ecx
pop ecx
test al, al
je 0x1000b9cf
mov eax, dword [ebp - 0x874]
mov dword [ebp - 0x880], eax
xor eax, eax
push eax
push 0x7fffffff
push dword [ebp - 0x874]
call fcn.10022c37
add esp, 0xc
inc eax
mov dword [ebp - 0x87c], eax
mov eax, dword [ebp - 0x86c]
cmp dword [eax + 0x18], 0
je 0x1000babd
push str.Content_Disposition:_inline_
push dword [eax + 0x18]
call dword [sym.imp.MSVCR120.dll_strstr]
pop ecx
pop ecx
test eax, eax
je 0x1000b9fb
push str.filename
push eax
jmp 0x1000ba09
mov eax, dword [ebp - 0x86c]
push str.Content_Disposition:_filename
push dword [eax + 0x18]
call dword [sym.imp.MSVCR120.dll_strstr]
pop ecx
pop ecx
test eax, eax
je 0x1000babd
push 0x1002b6f0
push eax
call dword [sym.imp.MSVCR120.dll_strstr]
pop ecx
pop ecx
test eax, eax
je 0x1000babd
inc eax
mov dword [ebp - 0x86c], eax
cmp byte [eax], 0x22
jne 0x1000ba42
inc eax
mov dword [ebp - 0x86c], eax
push 0x1002b6f4
push eax
call dword [sym.imp.MSVCR120.dll_strstr]
mov edx, eax
pop ecx
pop ecx
test edx, edx
je 0x1000babd
mov eax, dword [ebp - 0x86c]
sub edx, eax
mov dword [ebp - 0x86c], edx
lea ecx, [edx + 5]
cmp ecx, 0x400
jae 0x1000babd
push edx
push eax
lea eax, [ebp - 0x71c]
push eax
call dword [sym.imp.MSVCR120.dll_strncpy]
mov eax, dword [ebp - 0x86c]
add esp, 0xc
cmp eax, 0x400
jae 0x1000badc
xor ecx, ecx
mov byte [ebp + eax - 0x71c], cl
lea eax, [ebp - 0x71c]
push str..pdf
push eax
call sub.MSVCR120.dll_strcat
lea eax, [ebp - 0x71c]
push eax
call sub.MSVCR120.dll_strlen
add esp, 0xc
mov dword [ebp - 0x878], eax
xor eax, eax
cmp word [ebx + 0x16], ax
je 0x1000bae3
push dword [edi]
call fcn.10022c37
pop ecx
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x1000bae1
mov dword [ebp - 0x86c], ecx
jmp 0x1000bae9
call fcn.10022c37
xor eax, eax
mov dword [ebp - 0x86c], eax
call fcn.1000c881
test al, al
je 0x1000bb33
test esi, esi
je 0x1000baff
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
jmp 0x1000bb01
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x878]
inc eax
test esi, esi
push eax
lea eax, [ebp - 0x71c]
push eax
push ecx
push dword [ebp - 0x86c]
mov eax, str.MMFS
mov ecx, 0x1002a665
push dword [ebx + 0x20]
cmove eax, ecx
push eax
push str.CstringUTF8
jmp 0x1000bb72
test esi, esi
je 0x1000bb40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
jmp 0x1000bb42
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x878]
inc eax
test esi, esi
push eax
lea eax, [ebp - 0x71c]
push eax
push ecx
push dword [ebp - 0x86c]
mov eax, str.MMFS
mov ecx, 0x1002a665
push dword [ebx + 0x20]
cmove eax, ecx
push eax
push str.Cstring
push dword [ebp - 0x884]
mov eax, dword [ebp - 0x870]
push dword [ebp - 0x88c]
push dword [ebp - 0x87c]
push dword [ebp - 0x880]
push dword [ebp - 0x888]
push eax
push dword [ebx + 0x24]
push dword [edi + 8]
call fcn.10022c37
add esp, 0x3c
cmp dword [ebp - 0x874], 0
je 0x1000bbba
push dword [ebp - 0x874]
call fcn.10022c37
pop ecx
xor ebx, ebx
test esi, esi
je 0x1000bbdb
cmp word [edi + 0x260], bx
je 0x1000bbd5
mov eax, dword [esi]
xor ecx, ecx
inc ecx
push ecx
mov ecx, esi
call dword [eax]
jmp 0x1000bbdb
mov dword [edi + 0x264], esi
xor eax, eax
mov byte [ebp - 4], bl
push ebx
inc eax
lea ecx, [ebp - 0x850]
push eax
call fcn.10022c37
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x838]
xor eax, eax
push ebx
inc eax
push eax
call fcn.10022c37
call fcn.10026558
ret