Function at 0x10034550
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005a178
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa8
cmp byte [ebp + 0xc], 0
push ebx
push esi
push edi
mov byte [esp + 0x3c], dl
mov byte [esp + 0x34], cl
je 0x10034aec
test cl, cl
je 0x10034594
mov eax, dword [ebp + 0x14]
dec dword [eax]
jmp 0x10034b06
mov eax, dword [ebp + 0x10]
mov edx, 0x24ca
mov dword [esp + 0x68], eax
xor cl, cl
movzx eax, word [eax]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x68]
push eax
push 0xdc8
push 0x163f
sub esp, 0xc
lea eax, [esp + 0x84]
push eax
call fcn.100325b0
add esp, 0x1c
lea ecx, [esp + 0x80]
push 2
call fcn.10001c0f
xor edi, edi
xor ebx, ebx
mov dword [esp + 0xbc], edi
inc ebx
mov dword [esp + 0x20], 0x56915a13
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x24], 0x1506f573
mov dword [esp + 0x5c], 0xe267a5e2
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], 0x8bb1b5b3
mov dword [esp + 0x24], 0x8a62
mov dword [esp + 0x1c], 0xfffffffc
mov dword [esp + 0x2c], 0x1f6b071c
mov dword [esp + 0x18], edi
jmp 0x10034651
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
mov dword [eax + ecx*4], 0xec0a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1003463b
mov dword [esp + 0x20], edi
jmp 0x100349d2
mov dword [esp + 0x18], 0xcd53bc6e
mov dword [esp + 0x10], 0xfffffffc
mov dword [esp + 0x18], edi
jmp 0x100349c4
mov dword [esp + 0x64], edi
mov dword [esp + 0xc], edi
jmp 0x10034694
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x70], 0x1328f6c7
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x10034684
mov dword [esp + 0x70], edi
jmp 0x100349b6
mov dword [esp + 0x1c], 0x1829
cmp dword [esp + 0x1c], 0xc94
jge 0x10034756
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x48]
push eax
push str._ld__ld__ld_n
call fcn.1004235b
mov eax, dword [esp + 0x8c]
add esp, 0x10
mov edx, dword [esp + 0x38]
mov esi, ebx
mov dword [esp + 0x1c], edi
mov ebx, edi
lea ecx, [eax - 1]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov eax, edx
sub edx, dword [esp + 0x40]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], edx
test eax, eax
jle 0x1003473d
cmp ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
cmovl ecx, ebx
cmp ebx, eax
cmovl eax, ebx
inc eax
add eax, ecx
cmp edx, eax
jl 0x10034737
inc esi
sub edx, eax
cmp eax, edi
jle 0x10034737
mov ecx, dword [esp + 0xc]
inc ebx
mov edi, eax
cmp ebx, dword [esp + 0x14]
jl 0x1003470c
mov dword [esp + 0x38], edx
xor edi, edi
mov eax, edx
cdq
idiv dword [esp + 0x40]
add esi, eax
push esi
push str._ld_n
call fcn.10042041
pop ecx
xor ebx, ebx
pop ecx
inc ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], 0x887c5c6
mov dword [esp + 0x14], edi
jmp 0x1003497f
mov dword [esp + 0x10], 0x49da
cmp dword [esp + 0x10], 0x4d12
jle 0x1003483d
mov ecx, edi
mov dword [esp + 0xc], edi
mov ebx, edi
mov dword [esp + 0x2c], 0x1c9b
cmp dword [esp + 0x2c], 0x4ac
jge 0x100347cc
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x34]
push eax
push str._d__d
call fcn.1004235b
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp eax, 0xffffffff
je 0x100347c8
mov edx, dword [esp + 0x60]
mov ecx, eax
call fcn.10034367
jmp 0x1003479b
mov ecx, dword [esp + 0xc]
mov esi, edi
mov eax, esi
xor eax, ebx
or eax, ecx
lea ecx, [esp + 0x98]
cdq
push edx
push eax
call fcn.1000207f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100347ed
mov eax, dword [eax]
push eax
call fcn.10042041
pop ecx
push edi
push 1
lea ecx, [esp + 0xa0]
call fcn.100022c2
mov ecx, dword [esp + 0xc]
inc esi
cmp esi, 0x6182
jl 0x100347ce
inc ebx
cmp ebx, 0xdf1
jl 0x10034789
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, 0x495
jl 0x10034787
push edi
push 0x1829
call dword [sym.imp.USER32.dll_SetWindowTextA]
xor ebx, ebx
inc ebx
cmp dword [esp + 0x10], 0x477e
jge 0x10034852
push str.qtzk_sbiypor_onau_flif_kuq_wvmrwpmsq
call fcn.10042041
pop ecx
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc], edi
jmp 0x1003486f
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x44], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1003485f
mov dword [esp + 0x44], ebx
cmp dword [esp + 0x44], edi
jl 0x1003497b
mov dword [esp + 0xc], 0x49b76eea
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], edi
jl 0x1003496d
mov dword [esp + 0x10], edi
jmp 0x100348b3
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x8c], 0xd132
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100348a0
push ecx
push edi
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.10035386
mov eax, dword [esp + 0x24]
add esp, 0x10
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
sub ecx, eax
cmp ecx, dword [esp + 0x4c]
jne 0x100348e6
mov esi, edi
cmp dword [esp + 0xc], edi
je 0x100348e8
mov esi, ebx
mov edx, dword [esp + 0x44]
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp esi, eax
mov eax, dword [esp + 0x80]
setle cl
cmp dword [eax + edx*4], ecx
jl 0x1003490d
cmp dword [esp + 0x14], edi
jne 0x1003490d
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
xor ebx, ebx
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x80]
push 1
cmp dword [ecx + edx*4], eax
mov eax, dword [esp + 0x1c]
setle bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [esp + 0x20]
pop ebx
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x80]
setne dl
xor ecx, ecx
cmp edx, dword [eax + esi*4]
setl cl
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x94], eax
dec dword [esp + 0xc]
jns 0x1003489a
mov eax, dword [esp + 0xc]
dec dword [esp + 0x44]
jns 0x10034884
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jle 0x1003476b
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
cmp ecx, dword [esp + 0x1c]
je 0x100349ac
mov eax, edi
cmp dword [esp + 0x64], edi
je 0x100349ae
mov eax, ebx
mov dword [esp + 0x14], eax
inc dword [esp + 0x70]
cmp dword [esp + 0x70], ebx
jle 0x100346a4
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x1003467a
inc dword [esp + 0x20]
cmp dword [esp + 0x20], ebx
jle 0x10034661
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x4c], eax
jg 0x100349f6
dec dword [esp + 0x24]
mov esi, ebx
jne 0x100349f8
mov esi, edi
mov eax, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x50]
cmp ecx, eax
setg dl
mov dword [esp + 0x24], edx
cmp dword [esp + 0x24], edi
je 0x10034a21
mov edx, ebx
cmp dword [esp + 0x28], edi
jne 0x10034a23
mov edx, edi
mov eax, dword [esp + 0x4c]
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
cmp edx, eax
setge cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
sub eax, 0x5185
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0x6196
mov eax, dword [esp + 0x20]
setg dl
xor ecx, ecx
cmp eax, esi
setne cl
imul edx, ecx
add edx, 8
mov dword [esp + 0x5c], edx
xor edx, edx
mov eax, dword [esp + 0x20]
sub eax, 0x5d39a040
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
cmp ecx, eax
lea ecx, [esp + 0x80]
setne dl
mov dword [esp + 0x2c], edx
or dword [esp + 0xbc], 0xffffffff
call fcn.10001c92
mov ebx, dword [esp + 0x68]
mov esi, edi
push edi
push 0x2629
push 0x576b
push 0x6a5d
push 0x6325
push 0x3cc7
push 1
mov edx, 0xa74
xor cl, cl
call fcn.100340b1
mov cl, byte [esi + ebx]
add esp, 0x1c
mov dl, 0xeb
call fcn.10039c85
mov byte [esi + ebx], al
inc esi
cmp esi, 2
jb 0x10034aa1
mov ecx, dword [ebp + 8]
mov ax, word [esp + 0x6c]
mov word [ecx], ax
jmp 0x10034b06
xor edi, edi
test dl, dl
je 0x10034afc
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
jmp 0x10034b06
push 1
push edi
push edi
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorOwner]
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret