Function at 0x416040
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4721ef
mov eax, dword fs:[0]
push eax
sub esp, 0x268
mov eax, dword [0x48d000]
xor eax, esp
mov dword [esp + 0x260], eax
push ebx
push esi
push edi
mov eax, dword [0x48d000]
xor eax, esp
push eax
lea eax, [esp + 0x278]
mov dword fs:[0], eax
mov eax, dword [0x490c04]
mov ecx, dword [0x490c00]
push eax
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00418630
lea eax, [esp + 0x64]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push ecx
mov ecx, str.http:__www.xitongwangguo.com_systeminfof.txt
call fcn.00401f70
lea edx, [esp + 0x2c]
push edx
call fcn.00413910
add esp, 8
mov dword [esp + 0x280], 0
mov eax, dword [esp + 0x28]
cmp dword [eax - 0xc], 0
jne 0x416109
add eax, 0xfffffff0
mov dword [esp + 0x280], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416102
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x416b74
mov edi, str.__line_
shr edi, 0x10
mov esi, str._line_
xor ebx, ebx
shr esi, 0x10
mov dword [esp + 0x24], edi
mov dword [esp + 0x40], esi
jmp 0x416130
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x280], 1
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x280], 2
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
push ecx
inc ebx
mov dword [esp + 0x3c], ebx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x38], esp
mov dword [esp + 0x18], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x284], 3
test edi, edi
jne 0x4161bc
mov ecx, str.__line_
movzx edi, cx
call fcn.00401ab0
test eax, eax
je 0x4161cc
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x4161cc
push str.__line_
push ebx
mov ebx, 7
call fcn.00401e80
mov byte [esp + 0x284], 4
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x1c], esp
mov dword [esp + 0x18], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x288], 5
test esi, esi
jne 0x41621d
mov ecx, str._line_
movzx edi, cx
call fcn.00401ab0
test eax, eax
je 0x41622d
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x41622d
push str._line_
push ebx
mov ebx, 6
call fcn.00401e80
mov byte [esp + 0x288], 6
mov edi, dword [esp + 0x30]
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x1c], esp
mov esi, esp
call eax
cmp dword [edi - 4], 0
lea ecx, [edi - 4]
jl 0x416266
cmp eax, dword [edi - 0x10]
jne 0x416266
lea ebx, [edi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41629e
mov ecx, dword [edi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x416af3
mov eax, dword [edi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [edi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00454fea
add esp, 0x10
lea ecx, [esp + 0x38]
add ebx, 0x10
push ecx
mov ecx, dword [esp + 0x48]
mov dword [esi], ebx
mov byte [esp + 0x290], 2
call fcn.004150e0
mov edi, dword [esp + 0x2c]
cmp dword [edi - 0xc], 0
je 0x416af8
lea esi, [esp + 0x44]
call fcn.00416ba0
mov byte [esp + 0x280], 7
mov ebx, dword [esp + 0x44]
lea esi, [edi - 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x34], esi
cmp esi, ebx
je 0x416335
cmp dword [ebx + 0xc], 0
jl 0x416327
mov edx, dword [esi]
cmp edx, dword [ebx]
jne 0x416327
mov eax, esi
call fcn.00401a40
mov dword [esp + 0x10], eax
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41631a
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov ecx, dword [esp + 0x10]
add ecx, 0x10
mov dword [esp + 0x44], ecx
jmp 0x416335
mov ebx, dword [edi - 0xc]
push edi
lea edx, [esp + 0x48]
push edx
call fcn.00401e80
cmp dword [edi - 0xc], 0
jg 0x416340
or eax, 0xffffffff
jmp 0x416358
push 0x7c
push edi
call fcn.00456e0f
add esp, 8
test eax, eax
jne 0x416354
or eax, 0xffffffff
jmp 0x416358
sub eax, edi
sar eax, 1
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x2c]
call fcn.0040ff80
mov byte [esp + 0x280], 8
mov ecx, dword [eax]
mov edi, dword [esp + 0x48]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x4163c6
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x4163b8
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x4163b8
call fcn.00401a40
mov dword [esp + 0x10], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4163ab
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x10]
add ecx, 0x10
mov dword [esp + 0x48], ecx
jmp 0x4163c6
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.00401e80
mov byte [esp + 0x280], 7
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4163ee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x18], esp
mov dword [esp + 0x1c], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov eax, 0x480ed4
shr eax, 0x10
mov byte [esp + 0x284], 9
mov dword [esp + 0x14], eax
test eax, eax
jne 0x416443
mov ecx, 0x480ed4
movzx edi, cx
call fcn.00401ab0
test eax, eax
je 0x416453
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x416453
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x284], 0xa
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x20], esp
mov dword [esp + 0x24], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x288], 0xb
cmp dword [esp + 0x18], 0
jne 0x4164a7
mov ecx, 0x480ed4
movzx edi, cx
call fcn.00401ab0
test eax, eax
je 0x4164b7
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x4164b7
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x288], 0xc
push ecx
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x28], esp
mov ebx, esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4164e9
cmp eax, dword [esi]
jne 0x4164e9
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x416524
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x416af3
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [esi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00454fea
add esp, 0x10
lea edx, [esp + 0x2c]
add edi, 0x10
mov dword [ebx], edi
push edx
mov ecx, 1
mov byte [esp + 0x290], 7
call fcn.004150e0
mov eax, dword [esp + 0x20]
push eax
call fcn.00456637
mov edx, dword [section..data]
mov dword [esp + 0x50], eax
mov eax, dword [edx + 0xc]
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x20], esp
mov dword [esp + 0x1c], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x284], 0xd
cmp dword [esp + 0x14], 0
jne 0x416599
mov ecx, 0x480ed4
movzx edi, cx
call fcn.00401ab0
test eax, eax
je 0x4165a9
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x4165a9
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x284], 0xe
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x20], esp
mov dword [esp + 0x1c], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x288], 0xf
cmp dword [esp + 0x18], 0
jne 0x4165fd
mov ecx, 0x480ed4
movzx edi, cx
call fcn.00401ab0
test eax, eax
je 0x41660d
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x41660d
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x288], 0x10
push ecx
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x20], esp
mov ebx, esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41663f
cmp eax, dword [esi]
jne 0x41663f
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41667a
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x416af3
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [esi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00454fea
add esp, 0x10
lea edx, [esp + 0x5c]
add edi, 0x10
mov dword [ebx], edi
push edx
mov ecx, 2
mov byte [esp + 0x290], 7
call fcn.004150e0
mov eax, dword [section..data]
mov edx, dword [eax + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x18], 3
mov dword [esp + 0x20], esp
mov dword [esp + 0x1c], ebx
call edx
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x284], 0x11
cmp dword [esp + 0x14], 0
jne 0x4166e9
mov eax, 0x480ed4
movzx edi, ax
call fcn.00401ab0
test eax, eax
je 0x4166f9
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x4166f9
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x284], 0x12
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x20], esp
mov dword [esp + 0x38], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x288], 0x13
cmp dword [esp + 0x18], 0
jne 0x41674d
mov ecx, 0x480ed4
movzx edi, cx
call fcn.00401ab0
test eax, eax
je 0x41675d
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x41675d
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x288], 0x14
push ecx
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x3c], esp
mov ebx, esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41678f
cmp eax, dword [esi]
jne 0x41678f
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x4167ca
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x416af3
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [esi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00454fea
add esp, 0x10
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x60]
add edi, 0x10
mov dword [ebx], edi
push edx
mov byte [esp + 0x290], 7
call fcn.004150e0
mov eax, dword [section..data]
mov edx, dword [eax + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x18], 4
mov dword [esp + 0x34], esp
mov dword [esp + 0x20], ebx
call edx
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x284], 0x15
cmp dword [esp + 0x14], 0
jne 0x416838
mov eax, 0x480ed4
movzx edi, ax
call fcn.00401ab0
test eax, eax
je 0x416848
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x416848
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x284], 0x16
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x24], esp
mov dword [esp + 0x20], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x288], 0x17
cmp dword [esp + 0x18], 0
jne 0x41689c
mov ecx, 0x480ed4
movzx edi, cx
call fcn.00401ab0
test eax, eax
je 0x4168ac
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x4168ac
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x288], 0x18
push ecx
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x24], esp
mov ebx, esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4168de
cmp eax, dword [esi]
jne 0x4168de
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x416919
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x416af3
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [esi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00454fea
add esp, 0x10
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x68]
add edi, 0x10
mov dword [ebx], edi
push edx
mov byte [esp + 0x290], 7
call fcn.004150e0
mov eax, dword [section..data]
mov edx, dword [eax + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x18], 5
mov dword [esp + 0x34], esp
mov dword [esp + 0x20], ebx
call edx
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x284], 0x19
cmp dword [esp + 0x14], 0
jne 0x416987
mov eax, 0x480ed4
movzx edi, ax
call fcn.00401ab0
test eax, eax
je 0x416997
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x416997
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x284], 0x1a
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
push ecx
mov ebx, esp
mov ecx, section..data
mov dword [esp + 0x24], esp
mov dword [esp + 0x20], ebx
call eax
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x288], 0x1b
cmp dword [esp + 0x18], 0
jne 0x4169eb
mov ecx, 0x480ed4
movzx edi, cx
call fcn.00401ab0
test eax, eax
je 0x4169fb
push eax
mov eax, edi
mov edi, ebx
call fcn.00401c60
jmp 0x4169fb
push 0x480ed4
push ebx
mov ebx, 1
call fcn.00401e80
mov byte [esp + 0x288], 0x1c
push ecx
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x24], esp
mov ebx, esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x416a2d
cmp eax, dword [esi]
jne 0x416a2d
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x416a68
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x416af3
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00454fea
add esp, 0x10
lea ecx, [esp + 0x64]
add edi, 0x10
push ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx], edi
mov byte [esp + 0x290], 7
call fcn.004150e0
lea ecx, [esp + 0x44]
call fcn.004183c0
lea esi, [esp + 0x44]
call fcn.00413760
mov byte [esp + 0x280], 1
mov eax, dword [esp + 0x34]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x416aba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x280], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416ae2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
jmp 0x416130
call fcn.0041b440
lea eax, [edi - 0x10]
mov byte [esp + 0x280], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416b1c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x280], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416b44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x280], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416b6f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x278]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x260]
xor ecx, esp
call fcn.00454d73
mov esp, ebp
pop ebp
ret