Function at 0x5169dc
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x8b82d4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x228
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], ecx
xor eax, eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x230]
cmp eax, 0x105
je 0x516abc
push 0x105
call fcn.00898760
mov ebx, eax
add esp, 4
mov ecx, dword [ebp - 0x230]
mov edx, 0x105
cmp ecx, 0x105
mov eax, 0
ja 0x516a58
mov edx, ecx
test edx, edx
jbe 0x51739e
cmp edx, 6
jb 0x51738b
lea esi, [edx - 6]
mov edi, dword [ebp - 0x234]
mov cl, byte [eax + edi]
mov byte [eax + ebx], cl
mov ecx, dword [ebp - 0x234]
mov cl, byte [eax + ecx + 1]
mov byte [eax + ebx + 1], cl
mov ecx, dword [ebp - 0x234]
mov cl, byte [eax + ecx + 2]
mov byte [eax + ebx + 2], cl
mov ecx, dword [ebp - 0x234]
mov cl, byte [eax + ecx + 3]
mov byte [eax + ebx + 3], cl
mov ecx, dword [ebp - 0x234]
mov cl, byte [eax + ecx + 4]
mov byte [eax + ebx + 4], cl
add eax, 5
cmp eax, esi
jbe 0x516a6c
jmp 0x51738b
mov ebx, dword [ebp - 0x234]
mov eax, dword [ebp + 8]
mov byte [ebx], 0
cmp eax, 2
je 0x51754b
xor eax, eax
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 4], 3
xor eax, eax
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 4], 4
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0xac]
mov dword [ebp - 0x1d0], 0xffffffff
lea eax, [edx + 0x58]
mov dword [ebp - 0x18], eax
test ecx, ecx
jne 0x517400
lea eax, [ebp - 0x1bc]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x516b43
cmp eax, 0x104
jbe 0x516b4a
mov byte [ebp - 0x1bc], 0
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1d0]
push eax
push edx
call fcn.00516644
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0xc4]
test ebx, ebx
je 0x5173f9
mov ecx, eax
mov eax, 0x2aaaaaab
mov esi, dword [ecx + 0xc8]
sub esi, ebx
imul esi
sar esi, 0x1f
sar edx, 1
sub edx, esi
test edx, edx
jne 0x516c88
mov edi, 0x9ee0a0
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x516ba9
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x516b9d
mov edx, dword [ebp - 0x1d4]
mov dword [ebp - 0x1c], edx
lea esi, [edx + eax + 1]
mov edx, dword [ebp - 0x1d8]
mov dword [ebp - 0x1d4], esi
add esi, 0xff
and esi, 0xffffff00
cmp esi, edx
je 0x516c63
test esi, esi
jne 0x516bde
xor ebx, ebx
jmp 0x516bef
push esi
call fcn.00898760
mov ebx, eax
add esp, 4
mov edx, dword [ebp - 0x1d8]
cmp edx, esi
mov edi, edx
jb 0x516bf7
mov edi, esi
xor edx, edx
test edi, edi
jbe 0x5173d7
cmp edi, 6
jb 0x5173c4
lea ecx, [edi - 6]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx]
mov byte [edx + ebx], cl
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx + 1]
mov byte [edx + ebx + 1], cl
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx + 2]
mov byte [edx + ebx + 2], cl
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx + 3]
mov byte [edx + ebx + 3], cl
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx + 4]
mov byte [edx + ebx + 4], cl
add edx, 5
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jbe 0x516c10
jmp 0x5173c4
mov esi, dword [ebp - 0x1c]
add esi, dword [ebp - 0x1dc]
mov edi, 0x9ee0a0
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x516c71
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0xc4]
mov eax, dword [ebp - 0x14]
cmp ebx, dword [eax + 0xc8]
je 0x516cb8
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x1dc]
lea eax, [ebp - 0x1e8]
push eax
push ebx
push edx
call fcn.00517ae8
mov eax, dword [ebp - 0x14]
add ebx, 0xc
cmp ebx, dword [eax + 0xc8]
jne 0x516c93
mov edi, 0x9ee0a0
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x516cd3
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x516cc7
mov edx, dword [ebp - 0x1d4]
mov dword [ebp - 0x1c], edx
lea esi, [edx + eax + 1]
mov edx, dword [ebp - 0x1d8]
mov dword [ebp - 0x1d4], esi
add esi, 0xff
and esi, 0xffffff00
cmp esi, edx
je 0x516d8d
test esi, esi
jne 0x516d08
xor ebx, ebx
jmp 0x516d19
push esi
call fcn.00898760
mov ebx, eax
add esp, 4
mov edx, dword [ebp - 0x1d8]
cmp edx, esi
mov edi, edx
jb 0x516d21
mov edi, esi
xor edx, edx
test edi, edi
jbe 0x51706c
cmp edi, 6
jb 0x517059
lea ecx, [edi - 6]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx]
mov byte [edx + ebx], cl
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx + 1]
mov byte [edx + ebx + 1], cl
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx + 2]
mov byte [edx + ebx + 2], cl
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx + 3]
mov byte [edx + ebx + 3], cl
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx + 4]
mov byte [edx + ebx + 4], cl
add edx, 5
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jbe 0x516d3a
jmp 0x517059
mov esi, dword [ebp - 0x1c]
add esi, dword [ebp - 0x1dc]
mov edi, 0x9ee0a0
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x516d9b
mov eax, dword [ebp - 0x1e4]
test eax, eax
jne 0x516e50
cmp eax, 1
je 0x516e47
push 1
call fcn.00898760
mov ebx, eax
add esp, 4
mov ecx, dword [ebp - 0x1e4]
mov edx, 1
cmp ecx, 1
mov eax, 0
ja 0x516de3
mov edx, ecx
test edx, edx
jbe 0x5170a1
cmp edx, 6
jb 0x51708e
lea esi, [edx - 6]
mov edi, dword [ebp - 0x1e8]
mov cl, byte [eax + edi]
mov byte [eax + ebx], cl
mov ecx, dword [ebp - 0x1e8]
mov cl, byte [eax + ecx + 1]
mov byte [eax + ebx + 1], cl
mov ecx, dword [ebp - 0x1e8]
mov cl, byte [eax + ecx + 2]
mov byte [eax + ebx + 2], cl
mov ecx, dword [ebp - 0x1e8]
mov cl, byte [eax + ecx + 3]
mov byte [eax + ebx + 3], cl
mov ecx, dword [ebp - 0x1e8]
mov cl, byte [eax + ecx + 4]
mov byte [eax + ebx + 4], cl
add eax, 5
cmp eax, esi
jbe 0x516df7
jmp 0x51708e
mov ebx, dword [ebp - 0x1e8]
mov byte [ebx], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xa4], 0x4c
test eax, eax
je 0x516e6b
mov ecx, dword [ebp + 0xc]
call fcn.004f6e2c
jmp 0x516e6d
xor eax, eax
mov dword [ebp - 0xa0], eax
call fcn.00405f10
mov edx, dword [ebp - 0x1d4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x9c], eax
test edx, edx
jg 0x516e8f
xor eax, eax
jmp 0x516e95
mov eax, dword [ebp - 0x1dc]
mov esi, dword [ebp - 0x1d0]
mov edi, dword [ebp - 0x234]
mov dl, byte [ebp - 0x1bc]
mov dword [ebp - 0x98], eax
xor eax, eax
mov dword [ebp - 0x84], 0x104
mov dword [ebp - 0x94], eax
add esi, 1
mov dword [ebp - 0x90], eax
test dl, dl
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
je 0x516ee6
lea eax, [ebp - 0x1bc]
jmp 0x516ee8
xor eax, eax
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0xe0]
test edx, edx
ja 0x517380
xor eax, eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 8]
test eax, eax
jne 0x516f11
mov dword [ebp - 0x70], 0x201804
jmp 0x516f24
mov eax, dword [ebp + 8]
cmp eax, 1
jne 0x516fef
mov dword [ebp - 0x70], 0x200806
mov eax, dword [ebp - 0x1e4]
test eax, eax
ja 0x517375
xor eax, eax
mov edx, dword [ebp + 8]
mov dword [ebp - 0x68], eax
xor eax, eax
test edx, edx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov eax, 0
jne 0x516f5c
lea eax, [ebp - 0xa4]
push eax
call sub.comdlg32.dll_GetOpenFileNameA
jmp 0x516f70
mov edx, dword [ebp + 8]
cmp edx, 1
jne 0x516f70
lea eax, [ebp - 0xa4]
push eax
call sub.comdlg32.dll_GetSaveFileNameA
mov edx, dword [ebp - 0x14]
mov dword [edx + 0xd4], 0
test eax, eax
jne 0x5170c7
mov ecx, edx
call fcn.004146d4
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x1e8]
test eax, eax
je 0x516fa4
push eax
call fcn.00888fb0
pop ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x1dc]
test eax, eax
je 0x516fbc
push eax
call fcn.00888fb0
pop ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x234]
test eax, eax
je 0x516fd4
push eax
call fcn.00888fb0
pop ecx
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov dword [ebp - 0x70], 0x200804
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x1e8]
test eax, eax
je 0x51700e
push eax
call fcn.00888fb0
pop ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x1dc]
test eax, eax
je 0x517026
push eax
call fcn.00888fb0
pop ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x234]
test eax, eax
je 0x51703e
push eax
call fcn.00888fb0
pop ecx
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx]
mov byte [edx + ebx], cl
add edx, 1
cmp edx, edi
jb 0x517059
mov edx, dword [ebp - 0x1dc]
test edx, edx
je 0x51707d
push edx
call fcn.00888fb0
pop ecx
mov dword [ebp - 0x1dc], ebx
mov dword [ebp - 0x1d8], esi
jmp 0x516d8d
mov esi, dword [ebp - 0x1e8]
mov cl, byte [eax + esi]
mov byte [eax + ebx], cl
add eax, 1
cmp eax, edx
jb 0x51708e
mov edx, dword [ebp - 0x1e8]
test edx, edx
je 0x5170b2
push edx
call fcn.00888fb0
pop ecx
mov dword [ebp - 0x1e4], 1
mov dword [ebp - 0x1e8], ebx
jmp 0x516e4d
mov esi, dword [ebp - 0x234]
xor eax, eax
mov dword [ebp - 0x54], eax
mov edi, esi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x5170f0
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x5170e4
lea ecx, [ebp - 0x58]
push 1
mov ebx, eax
push ebx
call fcn.00404278
movzx edx, al
test edx, edx
je 0x517123
mov edi, dword [ebp - 0x54]
mov ecx, ebx
push ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x50], ebx
mov byte [ebx + edx], 0
mov dword [ebp - 4], 7
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x58]
push eax
call fcn.0041c9c8
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x51715a
movzx edx, byte [ecx - 1]
lea eax, [ecx - 1]
test edx, edx
jne 0x51735f
push eax
call fcn.00888fb0
pop ecx
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x54], eax
test edx, edx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
jne 0x5171e0
mov eax, dword [ebp - 0x14]
push 0
push eax
call fcn.004138c0
add esp, 8
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x1e8]
test eax, eax
je 0x517192
push eax
call fcn.00888fb0
pop ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x1dc]
test eax, eax
je 0x5171aa
push eax
call fcn.00888fb0
pop ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x234]
test eax, eax
je 0x5171c2
push eax
call fcn.00888fb0
pop ecx
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ecx + 0xc4]
add eax, eax
add eax, eax
lea edx, [eax + eax]
add edx, eax
mov esi, dword [edx + ebx - 8]
push esi
mov dword [ecx + 0xd4], esi
call fcn.0041c9b0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x48]
lea ebx, [eax + 0x40]
xor edx, edx
test ecx, ecx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], edx
je 0x51734d
lea ecx, [ebp - 0x48]
push 0xffffffffffffffff
push 1
push ebx
call fcn.0040418c
mov dword [ebp - 4], 8
mov eax, dword [ebp - 0x40]
xor ebx, ebx
test eax, eax
sete bl
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x517266
movzx edx, byte [ecx - 1]
lea eax, [ecx - 1]
test edx, edx
jne 0x517337
push eax
call fcn.00888fb0
pop ecx
xor eax, eax
mov dword [ebp - 0x44], eax
test ebx, ebx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
je 0x51717a
mov eax, dword [ebp - 0x14]
push dword [eax + 0xd4]
call fcn.004138a0
pop ecx
mov esi, dword [eax + 0x24]
mov esi, dword [esi]
xor eax, eax
mov dword [ebp - 0x34], eax
mov edi, esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x5172b0
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x5172a4
lea ecx, [ebp - 0x38]
push 1
mov ebx, eax
push ebx
call fcn.00404278
movzx edx, al
test edx, edx
je 0x5172e3
mov edi, dword [ebp - 0x34]
mov ecx, ebx
push ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x30], ebx
mov byte [ebx + edx], 0
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x38]
push 0
push eax
call fcn.004156ec
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x517318
movzx edx, byte [ecx - 1]
lea eax, [ecx - 1]
test edx, edx
jne 0x517328
push eax
call fcn.00888fb0
pop ecx
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
jmp 0x51717a
cmp edx, 0xff
je 0x517311
dec dl
mov byte [ecx - 1], dl
jmp 0x517318
cmp edx, 0xff
je 0x51725f
dec dl
mov byte [ecx - 1], dl
jmp 0x517266
lea ecx, [ebp - 0x48]
push 0xffffffffffffffff
push 0
push ebx
call fcn.0040418c
jmp 0x517231
cmp edx, 0xff
je 0x517153
dec dl
mov byte [ecx - 1], dl
jmp 0x51715a
mov eax, dword [ebp - 0x1e8]
jmp 0x516f34
mov eax, dword [eax + 0xdc]
jmp 0x516efe
mov esi, dword [ebp - 0x234]
mov cl, byte [eax + esi]
mov byte [eax + ebx], cl
add eax, 1
cmp eax, edx
jb 0x51738b
mov edx, dword [ebp - 0x234]
test edx, edx
je 0x5173af
push edx
call fcn.00888fb0
pop ecx
mov dword [ebp - 0x230], 0x105
mov dword [ebp - 0x234], ebx
jmp 0x516ac2
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [edx + ecx]
mov byte [edx + ebx], cl
add edx, 1
cmp edx, edi
jb 0x5173c4
mov edx, dword [ebp - 0x1dc]
test edx, edx
je 0x5173e8
push edx
call fcn.00888fb0
pop ecx
mov dword [ebp - 0x1dc], ebx
mov dword [ebp - 0x1d8], esi
jmp 0x516c63
xor edx, edx
jmp 0x516b86
mov ecx, eax
lea eax, [ebp - 0x1cc]
push eax
call fcn.0041c9e8
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x1c4]
cmp eax, 0x104
jb 0x517474
mov byte [ebp - 0x1bc], 0
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x1c8]
test ecx, ecx
je 0x51744c
movzx edx, byte [ecx - 1]
lea eax, [ecx - 1]
test edx, edx
jne 0x517465
push eax
call fcn.00888fb0
pop ecx
xor eax, eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], eax
jmp 0x516b4a
cmp edx, 0xff
je 0x517445
dec dl
mov byte [ecx - 1], dl
jmp 0x51744c
mov edi, dword [ebp - 0x1c8]
test edi, edi
je 0x517541
lea esi, [ebp - 0x1bc]
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x517488
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0xac]
cmp edx, 1
jne 0x517429
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0xb4]
push 0xffffffffffffffff
xor eax, eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
push eax
push edx
call fcn.0040418c
mov dword [ebp - 4], 6
mov esi, dword [ebp - 0x234]
mov edi, dword [ebp - 0xb0]
test edi, edi
je 0x51753a
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x5174e1
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
je 0x517512
movzx edx, byte [ecx - 1]
lea eax, [ecx - 1]
test edx, edx
jne 0x51752b
push eax
call fcn.00888fb0
pop ecx
xor eax, eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
jmp 0x517429
cmp edx, 0xff
je 0x51750b
dec dl
mov byte [ecx - 1], dl
jmp 0x517512
mov edi, 0x9eebb8
jmp 0x5174e1
mov edi, 0x9eebb8
jmp 0x517482
push 2
xor eax, eax
mov dword [ebp - 0x22c], eax
push eax
call dword [sym.imp.ole32.dll_CoInitializeEx]
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x228]
push edx
lea ecx, [eax + 0x58]
call fcn.0041c9e8
mov dword [ebp - 4], 1
mov edx, dword [ebp - 0x220]
cmp edx, 1
ja 0x517851
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x5175a2
mov ecx, dword [ebp + 0xc]
call fcn.004f6e2c
jmp 0x5175a4
xor eax, eax
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x210], eax
mov ecx, dword [edx + 0xe0]
test ecx, ecx
ja 0x517846
xor edx, edx
mov dword [ebp - 0x208], 0x40
mov dword [ebp - 0x20c], edx
mov dl, byte [eax]
test dl, dl
je 0x5175f0
mov edx, 0x518a50
jmp 0x5175f2
xor edx, edx
mov dword [ebp - 0x204], edx
mov dword [ebp - 0x200], eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x517680
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x224]
test ecx, ecx
je 0x517639
movzx edx, byte [ecx - 1]
lea eax, [ecx - 1]
test edx, edx
jne 0x517730
push eax
call fcn.00888fb0
pop ecx
xor eax, eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x234]
test eax, eax
je 0x517665
push eax
call fcn.00888fb0
pop ecx
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
push dword [ebp - 0x234]
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
xor edx, edx
test eax, eax
setne dl
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x517755
mov edx, dword [ebp - 0x22c]
test edx, edx
je 0x5176bf
mov eax, dword [ebp - 0x1c]
push eax
push edx
mov ecx, dword [edx]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x22c]
push eax
mov edx, dword [eax]
call dword [edx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x224]
test ecx, ecx
je 0x5176e8
movzx edx, byte [ecx - 1]
lea eax, [ecx - 1]
test edx, edx
jne 0x517746
push eax
call fcn.00888fb0
pop ecx
xor eax, eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x234]
test eax, eax
je 0x517714
push eax
call fcn.00888fb0
pop ecx
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
cmp edx, 0xff
je 0x517632
dec dl
mov byte [ecx - 1], dl
jmp 0x517639
cmp edx, 0xff
je 0x5176e1
dec dl
mov byte [ecx - 1], dl
jmp 0x5176e8
mov esi, dword [ebp - 0x234]
xor eax, eax
mov dword [ebp - 0x1f4], eax
mov edi, esi
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], eax
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x517787
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x51777b
lea ecx, [ebp - 0x1f8]
push 1
mov ebx, eax
push ebx
call fcn.00404278
movzx edx, al
test edx, edx
je 0x5177c6
mov edi, dword [ebp - 0x1f4]
mov ecx, ebx
push ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x1f0], ebx
mov byte [ebx + edx], 0
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1f8]
push eax
call fcn.00414bbc
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x1f4]
test ecx, ecx
je 0x5177ff
movzx edx, byte [ecx - 1]
lea eax, [ecx - 1]
test edx, edx
jne 0x517837
push eax
call fcn.00888fb0
pop ecx
lea edx, [ebp - 0x1e0]
push 1
push edx
xor eax, eax
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], eax
call fcn.0041cb54
add esp, 8
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x14]
call fcn.0041c9b0
jmp 0x51769f
cmp edx, 0xff
je 0x5177f8
dec dl
mov byte [ecx - 1], dl
jmp 0x5177ff
mov edx, dword [edx + 0xdc]
jmp 0x5175d3
mov ebx, dword [ebp - 0x224]
test ebx, ebx
je 0x517867
movzx eax, byte [ebx - 1]
test eax, eax
jne 0x517ac3
test ebx, ebx
je 0x517875
mov byte [ebx - 1], 0xff
mov ebx, dword [ebp - 0x224]
mov edx, dword [ebp - 0x220]
test ebx, ebx
je 0x517abc
lea eax, [ebx + edx]
mov al, byte [eax - 1]
cmp al, 0x5c
je 0x5178b3
mov esi, dword [ebp - 0x234]
test ebx, ebx
je 0x5178ac
mov edi, ebx
mov dl, byte [edi]
add edi, 1
mov byte [esi], dl
add esi, 1
test dl, dl
jne 0x517899
jmp 0x517591
mov ebx, 0x9eebb8
jmp 0x517897
test ebx, ebx
je 0x5178c3
movzx eax, byte [ebx - 1]
test eax, eax
jne 0x517a98
test ebx, ebx
je 0x5178d1
mov byte [ebx - 1], 0xff
mov ebx, dword [ebp - 0x224]
mov edx, dword [ebp - 0x220]
test ebx, ebx
je 0x517a8e
lea eax, [ebx + edx]
mov dword [ebp - 0x18], eax
add dword [ebp - 0x18], 0xffffffff
test ebx, ebx
je 0x5178f9
movzx eax, byte [ebx - 1]
test eax, eax
jne 0x517a6a
test ebx, ebx
je 0x517907
mov byte [ebx - 1], 0xff
mov ebx, dword [ebp - 0x224]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x517a60
sub eax, ebx
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x220]
jbe 0x51792a
call fcn.00889a1b
mov ebx, dword [ebp - 0x224]
test ebx, ebx
je 0x517939
movzx eax, byte [ebx - 1]
lea edx, [ebx - 1]
test eax, eax
jne 0x5179ae
mov edx, dword [ebp - 0x220]
sub edx, dword [ebp - 0x18]
mov eax, 1
cmp edx, 1
mov edi, edx
jb 0x517950
mov edi, eax
test edi, edi
jbe 0x51788d
add ebx, dword [ebp - 0x18]
lea eax, [ebx + edi]
sub edx, edi
push edx
push eax
push ebx
call fcn.008988c0
add esp, 0xc
mov ebx, dword [ebp - 0x220]
lea ecx, [ebp - 0x228]
push 0
sub ebx, edi
push ebx
call fcn.00404278
movzx eax, al
test eax, eax
jne 0x517993
mov ebx, dword [ebp - 0x224]
jmp 0x51788d
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x220], ebx
mov byte [ebx + eax], 0
mov ebx, dword [ebp - 0x224]
jmp 0x51788d
cmp eax, 0xff
je 0x517939
test ebx, ebx
je 0x5179c8
test eax, eax
jne 0x517a4c
push edx
call fcn.00888fb0
pop ecx
xor eax, eax
mov dword [ebp - 0x224], eax
mov edi, ebx
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], eax
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x5179f4
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x5179e8
lea ecx, [ebp - 0x228]
push 1
mov dword [ebp - 0x1c], eax
push eax
call fcn.00404278
movzx eax, al
test eax, eax
jne 0x517a17
mov ebx, dword [ebp - 0x224]
jmp 0x517939
mov edi, dword [ebp - 0x224]
mov ecx, dword [ebp - 0x1c]
mov esi, ebx
push ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x224]
mov dword [ebp - 0x220], eax
mov byte [eax + edx], 0
mov ebx, dword [ebp - 0x224]
jmp 0x517939
cmp eax, 0xff
je 0x5179c1
dec al
mov byte [edx], al
jmp 0x5179c8
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x517917
cmp eax, 0xff
je 0x5178f9
lea ecx, [ebp - 0x228]
push 0
push edx
call fcn.00404278
mov ebx, dword [ebp - 0x224]
jmp 0x5178f9
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x5178e5
cmp eax, 0xff
je 0x5178c3
lea ecx, [ebp - 0x228]
push 0
push edx
call fcn.00404278
mov ebx, dword [ebp - 0x224]
jmp 0x5178c3
xor eax, eax
jmp 0x517886
cmp eax, 0xff
je 0x517867
lea ecx, [ebp - 0x228]
push 0
push edx
call fcn.00404278
mov ebx, dword [ebp - 0x224]
jmp 0x517867