Function at 0x419490
Capabilities:
Get common file path
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x43c28f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3f0
mov eax, dword [0x449a98]
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x3f8], eax
mov dword [esp + 0x50], esi
call fcn.00410300
push eax
lea ecx, [esp + 0x20]
call fcn.00406d20
push str.dataUpdateClntPlat.ini
push eax
lea eax, [esp + 0x28]
xor ebp, ebp
push eax
mov dword [esp + 0x410], ebp
call fcn.00405580
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x418], 1
call fcn.0040f1b0
mov eax, dword [eax]
sub eax, 0x10
push eax
mov byte [esp + 0x41c], 2
call fcn.004030d0
add esp, 0x18
add eax, 0x10
push 0x80
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
or edi, 0xffffffff
mov byte [esp + 0x404], 6
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41954c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x404], 5
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419571
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x404], 4
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419596
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add esi, 0x10
push esi
push str.ClntPlatPkg
push str.General
lea ecx, [esp + 0x1c]
mov dword [esp + 0x64], esi
call fcn.00410b40
cmp dword [esi], ebp
jne 0x4195e1
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x404], edi
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x4195d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, 1
jmp 0x419abd
call fcn.00410300
push eax
lea ecx, [esp + 0x44]
call fcn.00406d20
push str.LogUpdateClntPlat.log
push eax
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x410], 7
call fcn.00405580
add esp, 0xc
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x404], 9
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419630
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.0040f1b0
add esp, 8
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
push eax
push edx
lea ecx, [esp + 0x64]
mov byte [esp + 0x40c], 0xa
call fcn.0041ef00
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov byte [esp + 0x404], 0xc
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419680
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esp + 0x5c]
push str.Start_Verify_Client_Plat
push eax
call fcn.0041f060
add esp, 8
lea ecx, [esp + 0x94]
call fcn.0041e720
mov byte [esp + 0x404], 0xd
call fcn.00402510
add eax, 0x54
push eax
lea ecx, [esp + 0x98]
call fcn.0040a2a0
test eax, eax
je 0x41970c
lea ecx, [esp + 0x17c]
call fcn.00403f50
mov ecx, dword [esi]
lea edx, [esp + 0x17c]
mov dword [esp + 0x17c], ecx
push edx
lea ecx, [esp + 0x98]
mov byte [esp + 0x408], 0xe
call fcn.00406740
test eax, eax
jne 0x41977f
lea ecx, [esp + 0x17c]
mov byte [esp + 0x404], 0xd
call fcn.00403ff0
lea ecx, [esp + 0x94]
mov byte [esp + 0x404], 0xc
call fcn.0041e860
lea ecx, [esp + 0x5c]
mov byte [esp + 0x404], 9
call fcn.0041ee40
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x404], 4
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419756
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x404], edi
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x419778
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
jmp 0x419abd
mov al, byte [esp + 0x274]
push ebx
mov bl, 0x11
cmp al, bl
je 0x41981a
lea ecx, [esp + 0x180]
mov byte [esp + 0x408], 0xd
call fcn.00403ff0
lea ecx, [esp + 0x98]
mov byte [esp + 0x408], 0xc
call fcn.0041e860
lea ecx, [esp + 0x60]
mov byte [esp + 0x408], 9
call fcn.0041ee40
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x408], 4
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4197ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x408], edi
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x419aba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x419aba
mov eax, dword [esi]
push eax
lea ecx, [esp + 0x64]
push str.Get_The_ClntPlat_Update_Pkg_id_d.
push ecx
call fcn.0041f060
add esp, 0xc
lea ecx, [esp + 0x10c]
call fcn.00412bb0
mov byte [esp + 0x408], 0xf
call fcn.00431cfd
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x38], eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x184]
mov byte [esp + 0x40c], 0x10
call fcn.0040c440
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x40c], bl
call fcn.00405420
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x408], 0x10
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4198a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edx, dword [esp + 0x298]
mov ecx, dword [esp + 0x29c]
xor eax, eax
cmp eax, edx
sbb eax, eax
and eax, ecx
push eax
lea ecx, [esp + 0x30]
call fcn.00406d20
lea ecx, [esp + 0x10]
push ecx
mov byte [esp + 0x40c], 0x12
call fcn.00415680
push 0x43d874
push eax
lea edx, [esp + 0x34]
push edx
mov byte [esp + 0x418], 0x13
call fcn.00405580
add esp, 0x10
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x408], 0x15
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419917
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x104
lea eax, [esp + 0x2fc]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [esp + 0x2f8]
push ecx
lea ecx, [esp + 0x40]
call fcn.00406d20
push 0x43d874
lea ecx, [esp + 0x40]
mov byte [esp + 0x40c], 0x16
call fcn.00406700
call fcn.00431cfd
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x408], 0x17
call fcn.00431cfd
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x408], 0x18
call fcn.00431cfd
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0x408], 0x19
call fcn.00431cfd
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x30], eax
mov byte [esp + 0x408], 0x1a
call fcn.00431cfd
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
cmp dword [eax - 0xc], ebp
mov byte [esp + 0x408], 0x1b
je 0x419a03
mov ecx, dword [esp + 0x28]
cmp dword [ecx - 0xc], ebp
je 0x419a03
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x110]
call fcn.004137f0
test eax, eax
jne 0x419ae1
lea ecx, [esp + 0x20]
call fcn.00403f00
lea ecx, [esp + 0x30]
call fcn.00403f00
lea ecx, [esp + 0x34]
call fcn.00403f00
lea ecx, [esp + 0x1c]
call fcn.00403f00
lea ecx, [esp + 0x24]
call fcn.00403f00
lea ecx, [esp + 0x3c]
call fcn.00403f00
lea ecx, [esp + 0x28]
call fcn.00403f00
lea ecx, [esp + 0x2c]
call fcn.00403f00
lea ecx, [esp + 0x38]
call fcn.00403f00
lea ecx, [esp + 0x10c]
mov byte [esp + 0x408], 0xe
call fcn.00417250
lea ecx, [esp + 0x180]
mov byte [esp + 0x408], 0xd
call fcn.00403ff0
lea ecx, [esp + 0x98]
mov byte [esp + 0x408], 0xc
call fcn.0041e860
lea ecx, [esp + 0x60]
mov byte [esp + 0x408], 9
call fcn.0041ee40
lea ecx, [esp + 0x18]
call fcn.00403f00
mov dword [esp + 0x408], edi
lea ecx, [esp + 0x14]
call fcn.00403f00
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x3fc]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x3f0]
pop ebp
call fcn.0042193c
add esp, 0x3fc
ret
lea eax, [esp + 0x60]
push str.Read_Idx_File_Success_and_Start_CheckFileCRC.
push eax
call fcn.0041f060
mov eax, dword [esp + 0x11c]
add esp, 8
cmp eax, ebp
jbe 0x419cca
mov bl, 0x1d
jmp 0x419b10
push ebp
lea ecx, [esp + 0x118]
call fcn.00412540
mov edi, eax
mov ecx, dword [edi + 4]
mov eax, ecx
test eax, eax
jbe 0x419b2d
mov eax, dword [edi + 8]
jmp 0x419b2f
xor eax, eax
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.004034c0
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x14]
mov byte [esp + 0x40c], 0x1c
call fcn.004047e0
lea ecx, [esp + 0x10]
mov byte [esp + 0x408], bl
call fcn.00404a20
mov esi, dword [esp + 0x10]
mov eax, dword [esi - 0xc]
test eax, eax
jl 0x419b9a
push str.DRIVERS_
push esi
call fcn.0042204b
add esp, 8
test eax, eax
je 0x419b9a
sub eax, esi
cmp eax, 0xffffffff
je 0x419b9a
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push esi
push edx
push str._s_s
lea eax, [esp + 0x28]
push eax
jmp 0x419bae
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
push esi
push ecx
push str._s_s
lea edx, [esp + 0x28]
push edx
call fcn.004053d0
add esp, 0x10
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.0040f1b0
add esp, 8
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x1e
call fcn.00405420
lea ecx, [esp + 0x4c]
mov byte [esp + 0x408], bl
call fcn.00403f00
cmp byte [edi], 2
jne 0x419c9d
mov edx, dword [esp + 0x1c]
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.0041a9f0
add esp, 8
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x40c], 0x1f
call fcn.00405420
lea ecx, [esp + 0x58]
mov byte [esp + 0x408], bl
call fcn.00403f00
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0040f1b0
add esp, 8
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x40c], 0x20
call fcn.00405420
lea ecx, [esp + 0x48]
mov byte [esp + 0x408], bl
call fcn.00403f00
mov eax, dword [esp + 0x2c]
push esi
push eax
lea ecx, [esp + 0x2c]
push str._s_s
push ecx
call fcn.004053d0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x64]
add esp, 0x10
push edi
push edx
call fcn.004170e0
test eax, eax
je 0x419db2
push esi
lea eax, [esp + 0x64]
push str.Verify__s__success.
push eax
call fcn.0041f060
add esp, 0xc
lea ecx, [esp + 0x10]
call fcn.00403f00
lea ecx, [esp + 0x40]
mov byte [esp + 0x408], 0x1b
call fcn.00403f00
mov eax, dword [esp + 0x114]
inc ebp
cmp ebp, eax
jb 0x419b10
or edi, 0xffffffff
push 0
push str.ClntPlatPkg
push str.General
lea ecx, [esp + 0x20]
call fcn.00410bf0
lea edx, [esp + 0x60]
push str.End_Verify_Client_Plat
push edx
call fcn.0041f060
add esp, 8
lea ecx, [esp + 0x20]
call fcn.00403f00
lea ecx, [esp + 0x30]
call fcn.00403f00
lea ecx, [esp + 0x34]
call fcn.00403f00
lea ecx, [esp + 0x1c]
call fcn.00403f00
lea ecx, [esp + 0x24]
call fcn.00403f00
lea ecx, [esp + 0x3c]
call fcn.00403f00
lea ecx, [esp + 0x28]
call fcn.00403f00
lea ecx, [esp + 0x2c]
call fcn.00403f00
lea ecx, [esp + 0x38]
call fcn.00403f00
lea ecx, [esp + 0x10c]
mov byte [esp + 0x408], 0xe
call fcn.00417250
lea ecx, [esp + 0x180]
mov byte [esp + 0x408], 0xd
call fcn.00403ff0
lea ecx, [esp + 0x98]
mov byte [esp + 0x408], 0xc
call fcn.0041e860
lea ecx, [esp + 0x60]
mov byte [esp + 0x408], 9
call fcn.0041ee40
lea ecx, [esp + 0x18]
call fcn.00403f00
lea ecx, [esp + 0x14]
mov dword [esp + 0x408], edi
call fcn.00403f00
mov eax, 1
jmp 0x419abc
lea ecx, [esp + 0xdc]
call fcn.00405a00
mov dword [esp + 0xdc], 0x43d84c
lea ecx, [esp + 0x84]
mov byte [esp + 0x408], 0x21
call fcn.004034a0
mov byte [esp + 0x408], 0x22
call fcn.00402510
add eax, 0x50
push eax
lea ecx, [esp + 0xe0]
call fcn.00409e60
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx]
lea ecx, [esp + 0x84]
mov dword [esp + 0x94], edx
call fcn.00417420
mov edi, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
xor eax, eax
cmp eax, edi
sbb eax, eax
and eax, edx
push eax
lea ecx, [esp + 0xe0]
call fcn.004180b0
call fcn.00402510
add eax, 0x50
push eax
lea ecx, [esp + 0xe0]
call fcn.004092c0
push esi
lea ecx, [esp + 0x64]
push str.Verify__s__failed.
push ecx
call fcn.0041f060
add esp, 0xc
lea ecx, [esp + 0x84]
call fcn.004024f0
lea ecx, [esp + 0xdc]
mov byte [esp + 0x408], bl
call fcn.00405a70
lea ecx, [esp + 0x10]
call fcn.00403f00
lea ecx, [esp + 0x40]
call fcn.00403f00
lea ecx, [esp + 0x20]
call fcn.00403f00
lea ecx, [esp + 0x30]
call fcn.00403f00
lea ecx, [esp + 0x34]
call fcn.00403f00
lea ecx, [esp + 0x1c]
call fcn.00403f00
lea ecx, [esp + 0x24]
call fcn.00403f00
lea ecx, [esp + 0x3c]
call fcn.00403f00
lea ecx, [esp + 0x28]
call fcn.00403f00
lea ecx, [esp + 0x2c]
call fcn.00403f00
lea ecx, [esp + 0x38]
call fcn.00403f00
lea ecx, [esp + 0x10c]
mov byte [esp + 0x408], 0xe
call fcn.00417250
lea ecx, [esp + 0x180]
mov byte [esp + 0x408], 0xd
call fcn.00403ff0
lea ecx, [esp + 0x98]
mov byte [esp + 0x408], 0xc
call fcn.0041e860
lea ecx, [esp + 0x60]
mov byte [esp + 0x408], 9
call fcn.0041ee40
lea ecx, [esp + 0x18]
call fcn.00403f00
mov dword [esp + 0x408], 0xffffffff
jmp 0x419ab1