Function at 0x4333e0
Capabilities:
Check if file exists
Get common file path
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49e790
mov eax, dword fs:[0]
push eax
sub esp, 0x2bc
mov eax, dword [0x4ca3f4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x2b8], esi
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x2c8], edi
mov dword [ebp - 0x2c0], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov dword [ebp - 0x2ac], ecx
mov byte [edi], 0
mov edx, ecx
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x2c0], 1
mov word [ebp - 0x290], ax
mov dword [ebp - 0x280], 0
lea eax, [edx + 2]
mov dword [ebp - 0x27c], 7
mov dword [ebp - 0x2b4], eax
nop dword [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x433480
sub edx, dword [ebp - 0x2b4]
sar edx, 1
push edx
push ecx
lea ecx, [ebp - 0x290]
call fcn.00407ca0
lea ecx, [ebp - 0x290]
push ecx
lea ecx, [esi + 0x88]
call fcn.00430070
mov ecx, dword [ebp - 0x2b8]
mov esi, eax
add ecx, 0x88
mov eax, dword [ecx]
mov dword [ebp - 0x2b4], eax
cmp esi, eax
je 0x4334e6
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x290]
push eax
call fcn.00430430
test al, al
je 0x4334e8
mov eax, dword [ebp - 0x2b4]
mov esi, eax
mov edx, dword [ebp - 0x27c]
cmp edx, 8
jb 0x433528
mov ecx, dword [ebp - 0x290]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43351e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x434efd
push edx
push ecx
call fcn.004611e8
add esp, 8
mov eax, dword [ebp - 0x2b8]
cmp esi, dword [eax + 0x88]
je case.0x43355c.18
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0046d470
mov eax, dword [ebp + 0xc]
add esp, 0xc
cmp eax, 0x19
ja case.0x43355c.18
jmp dword [eax*4 + 0x434f04]
push 5
xor eax, eax
mov dword [ebp - 0x280], 0
push str.bizhi
lea ecx, [ebp - 0x290]
mov dword [ebp - 0x27c], 7
mov word [ebp - 0x290], ax
call fcn.00407ca0
mov ecx, dword [ebp - 0x2ac]
mov edx, ecx
mov dword [ebp - 4], 1
lea eax, [edx + 2]
mov dword [ebp - 0x2b4], eax
nop word [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4335b0
sub edx, dword [ebp - 0x2b4]
lea eax, [ebp - 0x290]
sar edx, 1
cmp dword [ebp - 0x27c], 8
cmovae eax, dword [ebp - 0x290]
cmp dword [ebp - 0x280], edx
jne 0x433728
mov edx, dword [ebp - 0x280]
test edx, edx
je 0x43361b
sub eax, ecx
mov dword [ebp - 0x2b4], eax
nop word [eax + eax]
mov ax, word [ecx + eax]
cmp ax, word [ecx]
jne 0x433728
mov eax, dword [ebp - 0x2b4]
add ecx, 2
sub edx, 1
jne 0x433600
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 0xf
push str.channel_reg_key
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 4], 2
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 0xf
mov byte [ebp - 0x2a8], 0
call fcn.00407ba0
push 0xfde9
lea eax, [ebp - 0x2ac]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x2a8]
push eax
lea eax, [ebp - 0x2b4]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f130
push dword [eax]
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 4
call fcn.0042169d
mov edx, dword [ebp - 0x2b4]
or esi, 0xffffffff
mov byte [ebp - 4], 6
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4336b7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x2a8]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov byte [ebp - 4], 8
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x4336e1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00432600
push eax
mov ecx, edi
call fcn.0040ab70
lea ecx, [ebp - 0x260]
call fcn.00404040
lea ecx, [ebp - 0x278]
call fcn.00404090
lea ecx, [ebp - 0x290]
call fcn.00404090
jmp case.0x43355c.18
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 8
push str.reg_path
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 9
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0xfde9
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0xa
push ecx
lea ecx, [ebp - 0x248]
push ecx
lea eax, [esi + 0x28]
lea ecx, [ebp - 0x2b4]
mov dword [ebp - 0x2c4], eax
push ecx
mov ecx, eax
call fcn.0042f130
push dword [eax]
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 0xb
call fcn.0042169d
mov edx, dword [ebp - 0x2b4]
or esi, 0xffffffff
mov byte [ebp - 4], 0xd
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4337cc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x248]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov eax, esi
mov byte [ebp - 4], 0xf
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4337f8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 7
mov word [ebp - 0x2a8], ax
lea eax, [ebp - 0x2a8]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x2bc]
push eax
sub esp, 0x18
lea eax, [ebp - 0x260]
mov ecx, esp
push eax
call fcn.00421680
mov ecx, dword [ebp - 0x2b8]
call fcn.00436880
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 0xf
push str.channel_reg_key
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
mov ecx, dword [ebp - 0x2c4]
lea eax, [ebp - 0x2ac]
push 0xfde9
push eax
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x2b4]
push eax
call fcn.0042f130
push dword [eax]
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 0x13
call fcn.0042169d
mov edx, dword [ebp - 0x2b4]
mov eax, esi
mov byte [ebp - 4], 0x15
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4338df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x248]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov byte [ebp - 4], 0x17
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x433909
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x264], 8
lea ecx, [ebp - 0x278]
lea eax, [ebp - 0x2a8]
cmovae ecx, dword [ebp - 0x278]
cmp dword [ebp - 0x294], 8
push ecx
cmovae eax, dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0x2b8]
push eax
push dword [ebp - 0x2bc]
lea eax, [ebp - 0x230]
push eax
call fcn.00435170
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
push 0xfde9
cmovae eax, dword [ebp - 0x230]
push eax
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x18
push eax
call fcn.004627c0
add esp, 0xc
mov ecx, edi
push eax
call fcn.0040ab70
lea ecx, [ebp - 0x248]
call fcn.00404040
lea ecx, [ebp - 0x230]
call fcn.00404090
lea ecx, [ebp - 0x278]
call fcn.00404090
lea ecx, [ebp - 0x2a8]
call fcn.00404090
lea ecx, [ebp - 0x260]
call fcn.00404090
lea ecx, [ebp - 0x290]
call fcn.00404090
jmp case.0x43355c.18
push dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x278]
push 3
push eax
call fcn.004330d0
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
mov dword [ebp - 0x2c0], 3
cmovae eax, dword [ebp - 0x278]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x278]
call fcn.00404090
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x433af0
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 0x11
push str.main_process_name
lea ecx, [ebp - 0x248]
mov dword [ebp - 4], 0x19
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0xfde9
lea eax, [ebp - 0x2ac]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x2bc]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f130
push dword [eax]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov edx, dword [ebp - 0x2bc]
or esi, 0xffffffff
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x433ac6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x248]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x433af0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xfde9
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.004627c0
mov esi, eax
add esp, 0xc
cmp edi, esi
je 0x433b39
mov ecx, edi
call fcn.00404040
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x260]
jmp 0x434ed9
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 8
push str.reg_path
lea ecx, [ebp - 0x248]
mov dword [ebp - 4], 0x1b
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0xfde9
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0x1c
push ecx
lea ecx, [ebp - 0x248]
push ecx
lea eax, [esi + 0x28]
lea ecx, [ebp - 0x2bc]
mov dword [ebp - 0x2c4], eax
push ecx
mov ecx, eax
call fcn.0042f130
mov edx, dword [eax]
xor eax, eax
mov ecx, edx
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
lea esi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x433be0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x230]
call fcn.00407ca0
mov edx, dword [ebp - 0x2bc]
or esi, 0xffffffff
mov byte [ebp - 4], 0x1f
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x433c20
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x248]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov eax, esi
mov byte [ebp - 4], 0x21
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x433c4c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 7
mov word [ebp - 0x290], ax
lea eax, [ebp - 0x290]
mov byte [ebp - 4], 0x22
push eax
lea eax, [ebp - 0x2b0]
push eax
sub esp, 0x18
lea eax, [ebp - 0x230]
mov ecx, esp
push eax
call fcn.00421680
mov ecx, dword [ebp - 0x2b8]
call fcn.00436880
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 0x14
push str.install_date_reg_key
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0x23
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
mov ecx, dword [ebp - 0x2c4]
lea eax, [ebp - 0x2ac]
push 0xfde9
push eax
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x24
push eax
lea eax, [ebp - 0x2b4]
push eax
call fcn.0042f130
mov edx, dword [eax]
xor eax, eax
mov ecx, edx
mov word [ebp - 0x2a8], ax
mov byte [ebp - 4], 0x25
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 7
lea eax, [ecx + 2]
mov dword [ebp - 0x2bc], eax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x433d30
sub ecx, dword [ebp - 0x2bc]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2a8]
call fcn.00407ca0
mov edx, dword [ebp - 0x2b4]
mov eax, esi
mov byte [ebp - 4], 0x27
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x433d71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x248]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov byte [ebp - 4], 0x29
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x433d9b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x294], 8
lea ecx, [ebp - 0x2a8]
lea eax, [ebp - 0x290]
cmovae ecx, dword [ebp - 0x2a8]
cmp dword [ebp - 0x27c], 8
push ecx
cmovae eax, dword [ebp - 0x290]
mov ecx, dword [ebp - 0x2b8]
push eax
push dword [ebp - 0x2b0]
lea eax, [ebp - 0x278]
push eax
call fcn.00435170
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
push 0xfde9
cmovae eax, dword [ebp - 0x278]
push eax
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0x2a
push eax
call fcn.004627c0
mov esi, eax
add esp, 0xc
cmp edi, esi
je 0x433e38
mov ecx, edi
call fcn.00404040
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x260]
call fcn.00404040
lea ecx, [ebp - 0x278]
call fcn.00404090
lea ecx, [ebp - 0x2a8]
call fcn.00404090
lea ecx, [ebp - 0x290]
call fcn.00404090
lea ecx, [ebp - 0x230]
call fcn.00404090
jmp case.0x43355c.18
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 8
push str.reg_path
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x2b
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
push 0xfde9
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0x2c
push ecx
lea ecx, [ebp - 0x230]
push ecx
lea eax, [esi + 0x28]
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x2bc], eax
push ecx
mov ecx, eax
call fcn.0042f130
mov edx, dword [eax]
xor eax, eax
mov ecx, edx
mov byte [ebp - 4], 0x2d
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 7
mov word [ebp - 0x248], ax
lea esi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x433f10
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x248]
call fcn.00407ca0
mov edx, dword [ebp - 0x2b0]
or esi, 0xffffffff
mov byte [ebp - 4], 0x2f
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x433f50
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x230]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov eax, esi
mov byte [ebp - 4], 0x31
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x433f7c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 7
mov word [ebp - 0x290], ax
lea eax, [ebp - 0x290]
mov byte [ebp - 4], 0x32
push eax
lea eax, [ebp - 0x2b4]
push eax
sub esp, 0x18
lea eax, [ebp - 0x248]
mov ecx, esp
push eax
call fcn.00421680
mov ecx, dword [ebp - 0x2b8]
call fcn.00436880
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 0x13
push str.install_dir_reg_key
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x33
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov ecx, dword [ebp - 0x2bc]
lea eax, [ebp - 0x2ac]
push 0xfde9
push eax
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 0x34
push eax
lea eax, [ebp - 0x2c4]
push eax
call fcn.0042f130
mov edx, dword [eax]
xor eax, eax
mov ecx, edx
mov word [ebp - 0x2a8], ax
mov byte [ebp - 4], 0x35
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 7
lea eax, [ecx + 2]
mov dword [ebp - 0x2b0], eax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x434060
sub ecx, dword [ebp - 0x2b0]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2a8]
call fcn.00407ca0
mov edx, dword [ebp - 0x2c4]
mov eax, esi
mov byte [ebp - 4], 0x37
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4340a1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x230]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov byte [ebp - 4], 0x39
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x4340cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x294], 8
lea ecx, [ebp - 0x2a8]
lea eax, [ebp - 0x290]
cmovae ecx, dword [ebp - 0x2a8]
cmp dword [ebp - 0x27c], 8
push ecx
cmovae eax, dword [ebp - 0x290]
mov ecx, dword [ebp - 0x2b8]
push eax
push dword [ebp - 0x2b4]
lea eax, [ebp - 0x278]
push eax
call fcn.00435170
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
push 0xfde9
cmovae eax, dword [ebp - 0x278]
push eax
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0x3a
push eax
call fcn.004627c0
mov esi, eax
add esp, 0xc
cmp edi, esi
je 0x434168
mov ecx, edi
call fcn.00404040
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x260]
call fcn.00404040
lea ecx, [ebp - 0x278]
call fcn.00404090
lea ecx, [ebp - 0x2a8]
call fcn.00404090
lea ecx, [ebp - 0x290]
call fcn.00404090
lea ecx, [ebp - 0x248]
call fcn.00404090
jmp case.0x43355c.18
push 0
push 0x1a
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x4a4ba4
lea ecx, [ebp - 0x2b8]
call fcn.0040a530
push 0x11
push str.public_config_dir
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x3b
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
push 0xfde9
lea eax, [ebp - 0x2b8]
mov byte [ebp - 4], 0x3c
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x2ac]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f130
lea ecx, [ebp - 0x230]
call fcn.00404040
mov edx, dword [ebp - 0x2b8]
or esi, 0xffffffff
mov byte [ebp - 4], 0x3f
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x434250
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x218]
push eax
push str._appdata_
lea ecx, [ebp - 0x2ac]
call fcn.00423500
push 0xfde9
push dword [ebp - 0x2ac]
lea eax, [ebp - 0x260]
push eax
call fcn.004627c0
add esp, 0xc
mov dword [ebp - 0x2b0], eax
cmp edi, eax
je 0x4342b9
mov ecx, edi
call fcn.00404040
mov eax, dword [ebp - 0x2b0]
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea ecx, [ebp - 0x260]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg case.0x43355c.18
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp case.0x43355c.18
push 0
push 0x1a
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 0x10
push str.appdata_dir_name
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x40
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
push 0xfde9
lea eax, [ebp - 0x2ac]
mov byte [ebp - 4], 0x41
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x2b0]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f130
push dword [eax]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov edx, dword [ebp - 0x2b0]
or esi, 0xffffffff
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x434398
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x230]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x4343c2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xfde9
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.004627c0
mov esi, eax
add esp, 0xc
cmp edi, esi
je 0x433b39
mov ecx, edi
call fcn.00404040
movups xmm0, xmmword [esi]
lea ecx, [ebp - 0x260]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
jmp 0x434ed9
push dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x278]
push 3
push eax
call fcn.004330d0
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
mov dword [ebp - 0x2c0], 5
cmovae eax, dword [ebp - 0x278]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x278]
call fcn.00404090
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x434543
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 0xd
push str.cfg_file_path
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x42
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
push 0xfde9
lea eax, [ebp - 0x2ac]
mov byte [ebp - 4], 0x43
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x2b0]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f130
push dword [eax]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov edx, dword [ebp - 0x2b0]
or esi, 0xffffffff
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x434519
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x230]
call fcn.00404040
mov edx, dword [ebp - 0x2ac]
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x434543
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xfde9
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.004627c0
mov esi, eax
add esp, 0xc
cmp edi, esi
je 0x433b39
mov ecx, edi
call fcn.00404040
movups xmm0, xmmword [esi]
lea ecx, [ebp - 0x260]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
jmp 0x434ed9
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 9
push str.stats_url
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x44
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x45
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x260]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f0e0
mov esi, eax
cmp edi, esi
je 0x434ebd
mov ecx, edi
call fcn.00404040
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
jmp 0x434ebd
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0x12
push str.cfg_center_ver_url
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x46
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x47
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x260]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f0e0
mov esi, eax
cmp edi, esi
je 0x434ebd
mov ecx, edi
call fcn.00404040
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
jmp 0x434ebd
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0x15
push str.cfg_center_detail_url
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x48
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x49
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x260]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f0e0
mov esi, eax
cmp edi, esi
je 0x434ebd
mov ecx, edi
call fcn.00404040
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
jmp 0x434ebd
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0x18
push str.cfg_center_msg_wnd_class
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x4a
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x4b
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x260]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f0e0
mov esi, eax
cmp edi, esi
je 0x434ebd
mov ecx, edi
call fcn.00404040
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
jmp 0x434ebd
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0x1d
push str.cfg_center_stub_msg_wnd_class
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x4c
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov byte [ebp - 4], 0x4d
jmp 0x434e98
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0x1a
push str.config_center_single_mutex
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x4e
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov byte [ebp - 4], 0x4f
jmp 0x434e98
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0xf
push str.dump_upload_url
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x50
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov byte [ebp - 4], 0x51
jmp 0x434e98
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0xf
push str.service_cfg_url
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x52
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov byte [ebp - 4], 0x53
jmp 0x434e98
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 3
push 0x4aa5f8
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x54
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov byte [ebp - 4], 0x55
jmp 0x434e98
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 9
push str.short_app
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x56
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov byte [ebp - 4], 0x57
jmp 0x434e98
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0xa
push str.short_name
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x58
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov byte [ebp - 4], 0x59
jmp 0x434e98
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0xc
push str.service_name
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x5a
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov byte [ebp - 4], 0x5b
jmp 0x434e98
push dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x278]
push 3
push eax
call fcn.004330d0
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
mov dword [ebp - 0x2c0], 9
cmovae eax, dword [ebp - 0x278]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x278]
call fcn.00404090
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x434cd3
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 0xc
push str.service_path
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x5c
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
push 0xfde9
lea eax, [ebp - 0x2ac]
mov byte [ebp - 4], 0x5d
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x2b0]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f130
push dword [eax]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x2b0]
call fcn.00403f90
lea ecx, [ebp - 0x230]
call fcn.00404040
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0
call fcn.00403f90
push 0xfde9
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.004627c0
add esp, 0xc
mov ecx, edi
push eax
call fcn.0040ab70
lea ecx, [ebp - 0x260]
jmp 0x434ed9
push dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x278]
push 5
push eax
call fcn.004330d0
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
mov dword [ebp - 0x2c0], 0x11
cmovae eax, dword [ebp - 0x278]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x278]
call fcn.00404090
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x434e05
push 0x4a4ba4
lea ecx, [ebp - 0x2ac]
call fcn.0040a530
push 0x15
push str.appdata_cfg_file_path
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x5e
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
push 0xfde9
lea eax, [ebp - 0x2ac]
mov byte [ebp - 4], 0x5f
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x2b0]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f130
push dword [eax]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x2b0]
call fcn.00403f90
lea ecx, [ebp - 0x230]
call fcn.00404040
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0
call fcn.00403f90
push 0xfde9
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.004627c0
add esp, 0xc
mov ecx, edi
push eax
call fcn.0040ab70
lea ecx, [ebp - 0x260]
jmp 0x434ed9
push 0
push 0x4a46c8
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00407ba0
push 0xc
push str.activate_url
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 0x60
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00407ba0
mov byte [ebp - 4], 0x61
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x260]
push eax
lea ecx, [esi + 0x28]
call fcn.0042f0e0
push eax
mov ecx, edi
call fcn.0040ab70
lea ecx, [ebp - 0x260]
call fcn.00404040
lea ecx, [ebp - 0x230]
call fcn.00404040
lea ecx, [ebp - 0x248]
call fcn.00404040
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00461490
mov esp, ebp
pop ebp
ret 0xc
call fcn.0047089a
nop
arpl word [0x39c70043], si
inc ebx
add byte [ebx + edi + 0x43], al
add byte [esi + edi + 0x43], dh
add byte [ecx + eax*2 + 0x42ec0043], ah
inc ebx
add byte [edx], bl
inc esp
inc ebx
add byte [ebx + 0x54004345], bl
inc esi
inc ebx
add byte [0xc6004347], cl
inc edi
inc ebx
add byte [edi + 0x48], bh
inc ebx
add cl, ch
dec eax
inc ebx
add byte [ebx + 0x49], dl
inc ebx
add byte [ebp + 0x27004349], bh
dec edx
inc ebx
add byte [ecx - 0x4ffbcb6], dl
dec edx
inc ebx
add dh, bl
dec esi
inc ebx
add dh, bl
dec esi
inc ebx
add dh, bl
dec esi
inc ebx
add dh, bl
dec esi
inc ebx
add byte [ebp + 0x4b], ah
inc ebx
add bh, cl
dec ebx
inc ebx
add byte [ecx], al
dec ebp
inc ebx
add byte [ebx], dh
dec esi
inc ebx
add ah, cl
int3