Function at 0x452310
Capabilities:
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa68
mov eax, dword [0x541a34]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0xa10], ecx
call fcn.004537b0
mov dword [ebp - 0xa44], eax
mov eax, dword [ebp - 0xa10]
cmp dword [eax + 0x10], 0
je 0x45234e
mov ecx, dword [ebp - 0xa10]
mov eax, dword [ecx + 0x10]
jmp 0x452a3b
mov edx, dword [ebp - 0xa10]
cmp dword [edx + 0xc], 0
je 0x452474
mov eax, dword [ebp - 0xa10]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xa1c], ecx
cmp dword [ebp - 0xa1c], 0
jne 0x452385
mov dword [ebp - 0xa38], 0
jmp 0x452444
mov edx, dword [ebp - 0xa1c]
mov dword [ebp - 0xa24], edx
mov eax, dword [ebp - 0xa24]
add eax, 2
mov dword [ebp - 0xa50], eax
mov ecx, dword [ebp - 0xa24]
mov dx, word [ecx]
mov word [ebp - 0xa2e], dx
add dword [ebp - 0xa24], 2
cmp word [ebp - 0xa2e], 0
jne 0x4523a0
mov eax, dword [ebp - 0xa24]
sub eax, dword [ebp - 0xa50]
sar eax, 1
mov dword [ebp - 0xa54], eax
mov ecx, dword [ebp - 0xa54]
add ecx, 1
mov dword [ebp - 0xa18], ecx
cmp dword [ebp - 0xa18], 0x3fffffff
jle 0x4523fc
mov dword [ebp - 0xa34], 0
jmp 0x452438
mov eax, dword [ebp - 0xa18]
shl eax, 1
call fcn.004d2f30
mov dword [ebp - 0xa58], esp
mov edx, dword [ebp - 0xa44]
push edx
mov eax, dword [ebp - 0xa18]
shl eax, 1
push eax
mov ecx, dword [ebp - 0xa1c]
push ecx
mov edx, dword [ebp - 0xa58]
push edx
call fcn.004517f0
mov dword [ebp - 0xa34], eax
mov eax, dword [ebp - 0xa34]
mov dword [ebp - 0xa38], eax
push 0
mov ecx, dword [ebp - 0xa38]
push ecx
mov edx, dword [ebp - 0xa10]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.dbghelp.dll_SymInitialize]
mov ecx, dword [ebp - 0xa10]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 0xa10]
mov eax, dword [edx + 0x10]
jmp 0x452a3b
mov ax, word [0x505298]
mov word [ebp - 0xa0c], ax
push 0x7fe
push 0
lea ecx, [ebp - 0xa0a]
push ecx
call fcn.004d6720
add esp, 0xc
push 0x50529c
push 0x400
lea edx, [ebp - 0xa0c]
push edx
call fcn.00453560
mov ax, word [0x5052a4]
mov word [ebp - 0x20c], ax
push 0x206
push 0
lea ecx, [ebp - 0x20a]
push ecx
call fcn.004d6720
add esp, 0xc
lea edx, [ebp - 0x20c]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jbe 0x452514
lea eax, [ebp - 0x20c]
push eax
push 0x400
lea ecx, [ebp - 0xa0c]
push ecx
call fcn.00453500
push 0x5052a8
push 0x400
lea edx, [ebp - 0xa0c]
push edx
call fcn.00453500
push 0x208
push 0
lea eax, [ebp - 0x20c]
push eax
call fcn.004d6720
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jbe 0x4525ff
mov dword [ebp - 0xa3c], 0
lea edx, [ebp - 0xa3c]
push edx
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.004535c0
mov ecx, dword [ebp - 0xa3c]
mov dword [ebp - 0xa14], ecx
jmp 0x452585
mov edx, dword [ebp - 0xa14]
sub edx, 1
mov dword [ebp - 0xa14], edx
cmp dword [ebp - 0xa14], 0
jl 0x4525ff
mov eax, dword [ebp - 0xa14]
movzx ecx, word [ebp + eax*2 - 0x20c]
cmp ecx, 0x5c
je 0x4525c7
mov edx, dword [ebp - 0xa14]
movzx eax, word [ebp + edx*2 - 0x20c]
cmp eax, 0x2f
je 0x4525c7
mov ecx, dword [ebp - 0xa14]
movzx edx, word [ebp + ecx*2 - 0x20c]
cmp edx, 0x3a
jne 0x4525fa
mov eax, dword [ebp - 0xa14]
shl eax, 1
mov dword [ebp - 0xa40], eax
cmp dword [ebp - 0xa40], 0x208
jae 0x4525e3
jmp 0x4525e8
call fcn.004d2586
xor ecx, ecx
mov edx, dword [ebp - 0xa40]
mov word [ebp + edx - 0x20c], cx
jmp 0x4525ff
jmp 0x452576
lea eax, [ebp - 0x20c]
push eax
push 0x400
lea ecx, [ebp - 0xa0c]
push ecx
call fcn.00453500
push 0x5052ac
push 0x400
lea edx, [ebp - 0xa0c]
push edx
call fcn.00453500
push 0x208
push 0
lea eax, [ebp - 0x20c]
push eax
call fcn.004d6720
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
push 0x5052b0
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jbe 0x45268c
lea edx, [ebp - 0x20c]
push edx
push 0x400
lea eax, [ebp - 0xa0c]
push eax
call fcn.00453500
push 0x5052d0
push 0x400
lea ecx, [ebp - 0xa0c]
push ecx
call fcn.00453500
push 0x208
push 0
lea edx, [ebp - 0x20c]
push edx
call fcn.004d6720
add esp, 0xc
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0x5052d4
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jbe 0x4526eb
lea ecx, [ebp - 0x20c]
push ecx
push 0x400
lea edx, [ebp - 0xa0c]
push edx
call fcn.00453500
push 0x505308
push 0x400
lea eax, [ebp - 0xa0c]
push eax
call fcn.00453500
push 0x208
push 0
lea ecx, [ebp - 0x20c]
push ecx
call fcn.004d6720
add esp, 0xc
push 0x104
lea edx, [ebp - 0x20c]
push edx
push 0x50530c
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jbe 0x45278e
lea eax, [ebp - 0x20c]
push eax
push 0x400
lea ecx, [ebp - 0xa0c]
push ecx
call fcn.00453500
push 0x505324
push 0x400
lea edx, [ebp - 0xa0c]
push edx
call fcn.00453500
push 0x505328
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.00453500
lea ecx, [ebp - 0x20c]
push ecx
push 0x400
lea edx, [ebp - 0xa0c]
push edx
call fcn.00453500
push 0x50533c
push 0x400
lea eax, [ebp - 0xa0c]
push eax
call fcn.00453500
push 0x208
push 0
lea ecx, [ebp - 0x20c]
push ecx
call fcn.004d6720
add esp, 0xc
push 0x104
lea edx, [ebp - 0x20c]
push edx
push 0x505340
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jbe 0x45281b
push str.SRV
push 0x400
lea eax, [ebp - 0xa0c]
push eax
call fcn.00453500
lea ecx, [ebp - 0x20c]
push ecx
push 0x400
lea edx, [ebp - 0xa0c]
push edx
call fcn.00453500
push str.websymbols
push 0x400
lea eax, [ebp - 0xa0c]
push eax
call fcn.00453500
push str.http:__msdl.microsoft.com_download_symbols_
push 0x400
lea ecx, [ebp - 0xa0c]
push ecx
call fcn.00453500
jmp 0x452831
push str.SRVc:websymbolshttp:__msdl.microsoft.com_download_symbols_
push 0x400
lea edx, [ebp - 0xa0c]
push edx
call fcn.00453500
mov dword [ebp - 0xa28], 0
lea eax, [ebp - 0xa28]
push eax
push 0x400
lea ecx, [ebp - 0xa0c]
push ecx
call fcn.004535c0
cmp dword [ebp - 0xa28], 0
jbe 0x4528cf
mov eax, dword [ebp - 0xa28]
add eax, 1
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004d2a2a
add esp, 4
mov dword [ebp - 0xa5c], eax
mov eax, dword [ebp - 0xa10]
mov ecx, dword [ebp - 0xa5c]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0xa28]
lea eax, [edx + edx + 2]
push eax
push 0
mov ecx, dword [ebp - 0xa10]
mov edx, dword [ecx + 0xc]
push edx
call fcn.004d6720
add esp, 0xc
lea eax, [ebp - 0xa0c]
push eax
mov ecx, dword [ebp - 0xa28]
push ecx
mov edx, dword [ebp - 0xa10]
mov eax, dword [edx + 0xc]
push eax
call fcn.00453560
mov ecx, dword [ebp - 0xa10]
cmp dword [ecx + 0xc], 0
je 0x4529e7
mov edx, dword [ebp - 0xa10]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xa1c], eax
cmp dword [ebp - 0xa1c], 0
jne 0x452906
mov dword [ebp - 0xa4c], 0
jmp 0x4529c5
mov ecx, dword [ebp - 0xa1c]
mov dword [ebp - 0xa2c], ecx
mov edx, dword [ebp - 0xa2c]
add edx, 2
mov dword [ebp - 0xa60], edx
mov eax, dword [ebp - 0xa2c]
mov cx, word [eax]
mov word [ebp - 0xa30], cx
add dword [ebp - 0xa2c], 2
cmp word [ebp - 0xa30], 0
jne 0x452921
mov edx, dword [ebp - 0xa2c]
sub edx, dword [ebp - 0xa60]
sar edx, 1
mov dword [ebp - 0xa64], edx
mov eax, dword [ebp - 0xa64]
add eax, 1
mov dword [ebp - 0xa18], eax
cmp dword [ebp - 0xa18], 0x3fffffff
jle 0x45297d
mov dword [ebp - 0xa48], 0
jmp 0x4529b9
mov eax, dword [ebp - 0xa18]
shl eax, 1
call fcn.004d2f30
mov dword [ebp - 0xa68], esp
mov ecx, dword [ebp - 0xa44]
push ecx
mov edx, dword [ebp - 0xa18]
shl edx, 1
push edx
mov eax, dword [ebp - 0xa1c]
push eax
mov ecx, dword [ebp - 0xa68]
push ecx
call fcn.004517f0
mov dword [ebp - 0xa48], eax
mov edx, dword [ebp - 0xa48]
mov dword [ebp - 0xa4c], edx
push 1
mov eax, dword [ebp - 0xa4c]
push eax
mov ecx, dword [ebp - 0xa10]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.dbghelp.dll_SymInitialize]
mov ecx, dword [ebp - 0xa10]
mov dword [ecx + 0x10], eax
call dword [sym.imp.dbghelp.dll_SymGetOptions]
mov dword [ebp - 0xa20], eax
mov edx, dword [ebp - 0xa20]
or edx, 0x10
mov dword [ebp - 0xa20], edx
mov eax, dword [ebp - 0xa20]
or eax, 0x200
mov dword [ebp - 0xa20], eax
mov ecx, dword [ebp - 0xa20]
or ecx, 0x80000000
mov dword [ebp - 0xa20], ecx
mov edx, dword [ebp - 0xa20]
push edx
call dword [sym.imp.dbghelp.dll_SymSetOptions]
mov eax, dword [ebp - 0xa10]
mov eax, dword [eax + 0x10]
lea esp, [ebp - 0xa68]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d219c
mov esp, ebp
pop ebp
ret