Function at 0x4024d0
Capabilities:
Print debug messages
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x420feb
mov eax, dword fs:[0]
push eax
sub esp, 0x4e8
mov eax, dword [0x430050]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x3b4], eax
mov dword [ebp - 0x324], edi
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x3a0], 0xf
mov byte [ebp - 0x3b4], al
mov edx, 0xf
mov dword [ebp - 0x3cc], eax
mov dword [ebp - 0x3bc], eax
mov dword [ebp - 0x3b8], edx
mov byte [ebp - 0x3cc], al
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x3f4], eax
mov dword [ebp - 0x3f0], edx
mov byte [ebp - 0x404], al
cmp dword [ebp + 8], 3
mov byte [ebp - 4], 3
jl 0x4025f3
mov edx, dword [edi + 4]
mov ecx, edx
mov dword [ebp - 0x36c], eax
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x358], 0xf
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402594
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x36c]
call fcn.00405980
mov eax, 1
lea ecx, [ebp - 0x36c]
mov edx, str.start
mov dword [ebp - 0x4c4], eax
call fcn.00406260
test al, al
je 0x4025f3
mov ecx, dword [edi + 8]
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4025d1
push str.0123456789
push ecx
sub esi, edx
call fcn.0040e600
add esp, 8
mov byte [ebp - 0x4c9], 0
cmp eax, esi
je 0x4025fa
mov byte [ebp - 0x4c9], 1
mov eax, dword [ebp - 0x4c4]
test al, 1
je 0x402647
mov edx, dword [ebp - 0x358]
and eax, 0xfffffffe
mov dword [ebp - 0x4c4], eax
cmp edx, 0x10
jb 0x402647
mov ecx, dword [ebp - 0x36c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40263d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
cmp byte [ebp - 0x4c9], 0
je 0x402678
mov edx, 0x42c968
call fcn.00405f90
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00409064
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 8]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402680
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x3b4]
call fcn.00405980
xorps xmm0, xmm0
movups xmmword [ebp - 0x3ec], xmm0
push 0x38
movups xmmword [ebp - 0x3dc], xmm0
mov dword [ebp - 0x3ec], 0
mov dword [ebp - 0x3e8], 0
mov dword [ebp - 0x3e4], 0
call fcn.00409085
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [ebp - 0x3e8], eax
mov dword [ebp - 0x3e0], 0
mov dword [ebp - 0x3dc], 0
mov dword [ebp - 0x3d8], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x3e0]
push eax
push 0x10
mov dword [ebp - 0x3d4], 7
mov dword [ebp - 0x3d0], 8
mov dword [ebp - 0x3ec], 0x3f800000
call fcn.00405bc0
mov byte [ebp - 4], 6
xor eax, eax
mov dword [ebp - 0x4c8], eax
cmp eax, dword [ebp + 8]
jge 0x4029a5
mov edx, dword [edi + eax*4]
mov ecx, edx
mov dword [ebp - 0x33c], 0
mov dword [ebp - 0x32c], 0
mov dword [ebp - 0x328], 0xf
mov byte [ebp - 0x33c], 0
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402770
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x33c]
call fcn.00405980
mov byte [ebp - 4], 7
lea eax, [ebp - 0x33c]
cmp dword [ebp - 0x328], 0x10
mov esi, dword [ebp - 0x33c]
mov ecx, dword [ebp - 0x32c]
cmovae eax, esi
mov dword [ebp - 0x408], eax
test ecx, ecx
je 0x4027ca
push ecx
push 0x3d
push eax
call fcn.0040ae00
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4027ca
sub edi, dword [ebp - 0x408]
jmp 0x4027cd
or edi, 0xffffffff
cmp edi, 0xffffffff
je 0x402959
cmp dword [ebp - 0x32c], edi
lea eax, [ebp - 0x33c]
mov ecx, edi
mov dword [ebp - 0x36c], 0
cmovb ecx, dword [ebp - 0x32c]
cmp dword [ebp - 0x328], 0x10
push ecx
cmovae eax, esi
mov dword [ebp - 0x35c], 0
push eax
lea ecx, [ebp - 0x36c]
mov dword [ebp - 0x358], 0xf
mov byte [ebp - 0x36c], 0
call fcn.00405980
or dword [ebp - 0x4c4], 8
mov byte [ebp - 4], 8
inc edi
mov eax, dword [ebp - 0x32c]
mov dword [ebp - 0x354], 0
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x340], 0xf
mov byte [ebp - 0x354], 0
cmp eax, edi
jb 0x403d69
sub eax, edi
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [ebp - 0x328], 0x10
lea eax, [ebp - 0x33c]
cmovae eax, dword [ebp - 0x33c]
push ecx
add eax, edi
lea ecx, [ebp - 0x354]
push eax
call fcn.00405980
or dword [ebp - 0x4c4], 0x10
lea eax, [ebp - 0x36c]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x3ec]
call fcn.00405130
mov ecx, eax
lea eax, [ebp - 0x354]
cmp ecx, eax
je 0x4028d7
cmp dword [ebp - 0x340], 0x10
push dword [ebp - 0x344]
cmovae eax, dword [ebp - 0x354]
push eax
call fcn.00405980
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x340]
cmp edx, 0x10
jb 0x402915
mov ecx, dword [ebp - 0x354]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40290b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d6e
push edx
push ecx
call fcn.00409072
add esp, 8
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x358]
cmp edx, 0x10
jb 0x402953
mov ecx, dword [ebp - 0x36c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402949
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d6e
push edx
push ecx
call fcn.00409072
add esp, 8
mov esi, dword [ebp - 0x33c]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x328]
cmp eax, 0x10
jb 0x402993
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x402989
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d73
push ecx
push esi
call fcn.00409072
add esp, 8
mov eax, dword [ebp - 0x4c8]
mov edi, dword [ebp - 0x324]
inc eax
jmp 0x40272e
mov eax, dword [ebp - 0x3e8]
mov dword [ebp - 0x408], eax
mov esi, dword [eax]
cmp esi, eax
je 0x402d88
lea edi, [esi + 8]
push edi
lea ecx, [ebp - 0x384]
call fcn.00405340
lea eax, [edi + 0x18]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x33c]
call fcn.00405340
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x384]
mov eax, dword [ebp - 0x370]
cmp eax, 0x10
mov edx, dword [ebp - 0x384]
mov edi, dword [ebp - 0x374]
cmovae ecx, edx
mov dword [ebp - 0x324], edx
cmp edi, 9
jne 0x402c46
mov edx, str.__my_port
mov edi, 5
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x402a29
add ecx, 4
add edx, 4
sub edi, 4
jae 0x402a18
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x402a50
cmp edi, 0xfffffffd
je 0x402a4c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x402a50
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x402a50
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x402a50
xor eax, eax
jmp 0x402a55
sbb eax, eax
or eax, 1
test eax, eax
jne 0x402c34
mov ecx, dword [ebp - 0x328]
lea edi, [ebp - 0x33c]
mov edx, dword [ebp - 0x33c]
cmp ecx, 0x10
cmovae edi, edx
lea eax, [edi + 1]
mov dword [ebp - 0x324], eax
nop
mov al, byte [edi]
inc edi
test al, al
jne 0x402a80
sub edi, dword [ebp - 0x324]
lea eax, [ebp - 0x33c]
cmp ecx, 0x10
push str.0123456789
cmovae eax, edx
push eax
call fcn.0040e600
add esp, 8
cmp eax, edi
je 0x402c29
mov edx, 0x42c980
call fcn.00405f90
mov edx, dword [ebp - 0x328]
cmp edx, 0x10
jb 0x402af3
mov ecx, dword [ebp - 0x33c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402ae9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d78
push edx
push ecx
call fcn.00409072
add esp, 8
mov edx, dword [ebp - 0x370]
mov dword [ebp - 0x32c], 0
mov dword [ebp - 0x328], 0xf
mov byte [ebp - 0x33c], 0
cmp edx, 0x10
jb 0x402b48
mov ecx, dword [ebp - 0x384]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402b3e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d78
push edx
push ecx
call fcn.00409072
add esp, 8
lea ecx, [ebp - 0x3ec]
mov dword [ebp - 0x374], 0
mov dword [ebp - 0x370], 0xf
mov byte [ebp - 0x384], 0
call fcn.00403e50
mov eax, dword [ebp - 0x3f0]
cmp eax, 0x10
jb 0x402baa
mov ecx, dword [ebp - 0x404]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x402ba0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d78
push edx
push ecx
call fcn.00409072
add esp, 8
mov eax, dword [ebp - 0x3b8]
cmp eax, 0x10
jb 0x402be6
mov ecx, dword [ebp - 0x3cc]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x402bdc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d78
push edx
push ecx
call fcn.00409072
add esp, 8
mov edx, dword [ebp - 0x3a0]
cmp edx, 0x10
jb 0x40265a
mov ecx, dword [ebp - 0x3b4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402c1a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d78
push edx
push ecx
call fcn.00409072
add esp, 8
jmp 0x40265a
lea ecx, [ebp - 0x3cc]
jmp 0x402cba
mov edx, dword [ebp - 0x324]
mov eax, dword [ebp - 0x370]
mov edi, dword [ebp - 0x374]
cmp eax, 0x10
lea ecx, [ebp - 0x384]
cmovae ecx, edx
cmp edi, 5
jne 0x402ce0
mov eax, dword [ecx]
mov edi, str.__key
mov dword [ebp - 0x4c8], 1
cmp eax, dword [edi]
jne 0x402c80
add ecx, 4
mov dword [ebp - 0x4c8], 0xfffffffd
add edi, 4
mov al, byte [ecx]
cmp al, byte [edi]
jne 0x402cab
cmp dword [ebp - 0x4c8], 0xfffffffd
je 0x402ca7
mov al, byte [ecx + 1]
cmp al, byte [edi + 1]
jne 0x402cab
mov al, byte [ecx + 2]
cmp al, byte [edi + 2]
jne 0x402cab
mov al, byte [ecx + 3]
cmp al, byte [edi + 3]
jne 0x402cab
xor eax, eax
jmp 0x402cb0
sbb eax, eax
or eax, 1
test eax, eax
jne 0x402ce0
lea ecx, [ebp - 0x404]
cmp dword [ebp - 0x328], 0x10
lea eax, [ebp - 0x33c]
push dword [ebp - 0x32c]
cmovae eax, dword [ebp - 0x33c]
push eax
call fcn.00405980
mov edx, dword [ebp - 0x384]
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x328]
cmp eax, 0x10
jb 0x402d26
mov ecx, dword [ebp - 0x33c]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x402d16
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d78
push edx
push ecx
call fcn.00409072
mov edx, dword [ebp - 0x384]
add esp, 8
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x370]
mov dword [ebp - 0x32c], 0
mov dword [ebp - 0x328], 0xf
mov byte [ebp - 0x33c], 0
cmp eax, 0x10
jb 0x402d7b
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x402d71
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d78
push ecx
push edx
call fcn.00409072
add esp, 8
mov esi, dword [esi]
mov eax, dword [ebp - 0x408]
jmp 0x4029b3
push 0x104
lea eax, [ebp - 0x118]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x36c], 0
mov dword [ebp - 0x35c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x358], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402dc3
sub ecx, edx
lea eax, [ebp - 0x118]
push ecx
push eax
lea ecx, [ebp - 0x36c]
call fcn.00405980
push dword [ebp - 0x4d0]
mov edi, dword [ebp - 0x358]
lea ecx, [ebp - 0x36c]
mov esi, dword [ebp - 0x36c]
cmp edi, 0x10
mov edx, dword [ebp - 0x35c]
cmovae ecx, esi
push 1
sub esp, 8
call fcn.00406760
add esp, 0x10
mov dword [ebp - 0x324], eax
cmp edi, 0x10
jb 0x402e46
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x402e3c
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d7d
push ecx
push esi
call fcn.00409072
add esp, 8
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x354], 0
mov dword [ebp - 0x344], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x340], 0xf
mov byte [ebp - 0x354], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402e74
sub ecx, edx
lea eax, [ebp - 0x118]
push ecx
push eax
lea ecx, [ebp - 0x354]
call fcn.00405980
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x354]
mov ecx, dword [ebp - 0x324]
cmp dword [ebp - 0x344], ecx
mov dword [ebp - 0x39c], 0
cmovb ecx, dword [ebp - 0x344]
cmp dword [ebp - 0x340], 0x10
push ecx
cmovae eax, dword [ebp - 0x354]
lea ecx, [ebp - 0x39c]
push eax
mov dword [ebp - 0x38c], 0
mov dword [ebp - 0x388], 0xf
mov byte [ebp - 0x39c], 0
call fcn.00405980
mov edi, dword [ebp - 0x4c4]
or edi, 0x20
mov dword [ebp - 0x4c4], edi
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x340]
cmp edx, 0x10
jb 0x402f3a
mov ecx, dword [ebp - 0x354]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402f30
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
mov edx, dword [ebp - 0x388]
mov eax, edx
mov ecx, dword [ebp - 0x38c]
sub eax, ecx
push 0xe
push str.WeChatApi.dll
cmp eax, 0xe
jb 0x402f80
cmp edx, 0x10
lea esi, [ebp - 0x39c]
lea eax, [ecx + 0xe]
cmovae esi, dword [ebp - 0x39c]
add esi, ecx
mov dword [ebp - 0x38c], eax
push esi
call fcn.0040a710
add esp, 0xc
mov byte [esi + 0xe], 0
jmp 0x402f9a
mov byte [ebp - 0x324], 0
lea ecx, [ebp - 0x39c]
push dword [ebp - 0x324]
push 0xe
call fcn.00406960
push 0xb8
lea eax, [ebp - 0x4c0]
push 0
push eax
call fcn.0040ac90
cmp dword [ebp - 0x388], 0x10
lea eax, [ebp - 0x39c]
lea ecx, [ebp - 0x4c0]
cmovae eax, dword [ebp - 0x39c]
push eax
call fcn.00404e10
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x4c0]
mov eax, dword [eax + 4]
cmp dword [ebp + eax - 0x4b4], 0
je 0x403183
mov edx, 0x42c9b0
call fcn.00405f90
mov eax, dword [ebp - 0x4c0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x4c4], eax
lea ecx, [ebp - 0x4b0]
call fcn.004049f0
mov eax, dword [ebp - 0x4c0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x4c4], eax
lea eax, [ebp - 0x450]
mov byte [ebp - 4], 0x10
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.00408978
mov edx, dword [ebp - 0x388]
add esp, 4
cmp edx, 0x10
jb 0x4030a2
mov ecx, dword [ebp - 0x39c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403098
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
lea ecx, [ebp - 0x3ec]
mov dword [ebp - 0x38c], 0
mov dword [ebp - 0x388], 0xf
mov byte [ebp - 0x39c], 0
call fcn.00403e50
mov edx, dword [ebp - 0x3f0]
cmp edx, 0x10
jb 0x403102
mov ecx, dword [ebp - 0x404]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4030f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
mov edx, dword [ebp - 0x3b8]
cmp edx, 0x10
jb 0x40313c
mov ecx, dword [ebp - 0x3cc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403132
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
mov edx, dword [ebp - 0x3a0]
cmp edx, 0x10
jb 0x40265a
mov ecx, dword [ebp - 0x3b4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402c1a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
jmp 0x40265a
lea eax, [ebp - 0x408]
push eax
push 0x101
push 0
push 0x42ca9c
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x4031e9
xor eax, eax
mov dword [ebp - 0x384], 0
push eax
push 0x42cacc
lea ecx, [ebp - 0x384]
mov dword [ebp - 0x374], 0
mov dword [ebp - 0x370], 7
mov word [ebp - 0x384], ax
call fcn.00407cb0
or dword [ebp - 0x4c4], 0x40
jmp 0x40334a
push 0x208
lea eax, [ebp - 0x320]
push 0
push eax
call fcn.0040ac90
add esp, 0xc
mov dword [ebp - 0x324], 0x104
lea eax, [ebp - 0x324]
push eax
lea eax, [ebp - 0x320]
push eax
push 0
push 0
push str.InstallPath
push dword [ebp - 0x408]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4031a5
push dword [ebp - 0x408]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov dword [ebp - 0x354], 0
lea ecx, [ebp - 0x320]
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x340], 7
lea edx, [ecx + 2]
mov word [ebp - 0x354], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403270
sub ecx, edx
lea eax, [ebp - 0x320]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x354]
call fcn.00407cb0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x340]
mov eax, edx
mov ecx, dword [ebp - 0x344]
sub eax, ecx
cmp eax, 0xb
jb 0x4032e5
cmp edx, 8
lea esi, [ebp - 0x354]
push 0x16
cmovae esi, dword [ebp - 0x354]
lea edi, [ecx + 0xb]
push str.WeChat.exe
mov dword [ebp - 0x344], edi
lea eax, [esi + ecx*2]
push eax
call fcn.0040a710
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
mov edi, dword [ebp - 0x4c4]
jmp 0x403306
push 0xb
push str.WeChat.exe
mov byte [ebp - 0x4c8], 0
lea ecx, [ebp - 0x354]
push dword [ebp - 0x4c8]
push 0xb
call fcn.00407f30
movups xmm0, xmmword [ebp - 0x354]
or edi, 0x40
xor eax, eax
mov dword [ebp - 0x4c4], edi
movups xmmword [ebp - 0x384], xmm0
mov word [ebp - 0x354], ax
movq xmm0, qword [ebp - 0x344]
movq qword [ebp - 0x374], xmm0
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x340], 7
mov byte [ebp - 4], 0x12
cmp dword [ebp - 0x374], 0
jne 0x40353a
mov edx, 0x42c9bc
call fcn.00405f90
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x370]
cmp edx, 8
jb 0x4033a9
mov ecx, dword [ebp - 0x384]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40339f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
mov eax, dword [ebp - 0x4c0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x4c4], eax
lea ecx, [ebp - 0x4b0]
call fcn.004049f0
mov eax, dword [ebp - 0x4c0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x4c4], eax
lea eax, [ebp - 0x450]
mov byte [ebp - 4], 0x13
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.00408978
mov edx, dword [ebp - 0x388]
add esp, 4
cmp edx, 0x10
jb 0x403459
mov ecx, dword [ebp - 0x39c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40344f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
lea ecx, [ebp - 0x3ec]
mov dword [ebp - 0x38c], 0
mov dword [ebp - 0x388], 0xf
mov byte [ebp - 0x39c], 0
call fcn.00403e50
mov edx, dword [ebp - 0x3f0]
cmp edx, 0x10
jb 0x4034b9
mov ecx, dword [ebp - 0x404]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4034af
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
mov edx, dword [ebp - 0x3b8]
cmp edx, 0x10
jb 0x4034f3
mov ecx, dword [ebp - 0x3cc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4034e9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
mov edx, dword [ebp - 0x3a0]
cmp edx, 0x10
jb 0x40265a
mov ecx, dword [ebp - 0x3b4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402c1a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
jmp 0x40265a
call fcn.00401450
sub esp, 0x18
lea eax, [ebp - 0x404]
mov ecx, esp
mov dword [ebp - 0x4d0], esp
push eax
call fcn.00405340
sub esp, 0x18
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x3cc]
mov dword [ebp - 0x4c8], esp
mov ecx, esp
push eax
call fcn.00405340
sub esp, 0x18
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x3b4]
mov dword [ebp - 0x4d4], esp
mov ecx, esp
push eax
call fcn.00405340
sub esp, 0x18
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x39c]
mov dword [ebp - 0x4d8], esp
mov ecx, esp
push eax
call fcn.00405340
sub esp, 0x18
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x384]
mov ecx, esp
push eax
call fcn.00405260
mov byte [ebp - 4], 0x12
call fcn.004076a0
mov edi, eax
lea esi, [ebp - 0x327]
mov ecx, edi
add esp, 0x78
mov dword [ebp - 0x4c8], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x4c8]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x4c8], eax
test eax, eax
jne 0x4035d8
xor ecx, ecx
lea eax, [ebp - 0x327]
mov dword [ebp - 0x36c], ecx
mov edx, 0xf
mov dword [ebp - 0x35c], ecx
mov dword [ebp - 0x358], edx
cmp esi, eax
je 0x403646
sub eax, esi
lea ecx, [ebp - 0x36c]
push eax
push esi
call fcn.00405980
mov edx, dword [ebp - 0x358]
mov ecx, dword [ebp - 0x36c]
or dword [ebp - 0x4c4], 0x180
lea eax, [ebp - 0x36c]
cmp edx, 0x10
cmovae eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [ebp - 0x358]
cmp edx, 0x10
jb 0x40369d
mov ecx, dword [ebp - 0x36c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403693
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d82
push edx
push ecx
call fcn.00409072
add esp, 8
test edi, edi
je 0x403b77
mov edx, dword [ebp - 0x3a4]
mov eax, 0x7fffffff
sub eax, edx
cmp eax, 0x17
jb 0x403d87
cmp dword [ebp - 0x3a0], 0x10
lea eax, [ebp - 0x3b4]
mov edi, 0xf
mov dword [ebp - 0x33c], 0
cmovae eax, dword [ebp - 0x3b4]
lea esi, [ebp - 0x33c]
mov dword [ebp - 0x4c8], eax
lea eax, [edx + 0x17]
mov dword [ebp - 0x32c], 0
mov dword [ebp - 0x328], 0
mov dword [ebp - 0x4d0], eax
cmp eax, edi
jbe 0x403792
mov edi, eax
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x403723
mov edi, 0x7fffffff
jmp 0x40372d
mov eax, 0x16
cmp edi, eax
cmovb edi, eax
xor ecx, ecx
mov eax, edi
add eax, 1
setb cl
neg ecx
or ecx, eax
cmp ecx, 0x1000
jb 0x403770
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x403d8c
push eax
call fcn.00409085
add esp, 4
test eax, eax
je 0x403d96
mov edx, dword [ebp - 0x3a4]
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x403789
test ecx, ecx
je 0x403787
push ecx
call fcn.00409085
mov edx, dword [ebp - 0x3a4]
add esp, 4
mov esi, eax
jmp 0x403789
xor esi, esi
mov dword [ebp - 0x33c], esi
lea eax, [edx + 0x17]
movups xmm0, xmmword [0x42c9cc]
mov dword [ebp - 0x32c], eax
mov dword [ebp - 0x328], edi
movups xmmword [esi], xmm0
mov eax, dword [0x42c9dc]
mov dword [esi + 0x10], eax
mov ax, word [0x42c9e0]
mov word [esi + 0x14], ax
mov al, byte [0x42c9e2]
push edx
push dword [ebp - 0x4c8]
mov byte [esi + 0x16], al
lea eax, [esi + 0x17]
push eax
call fcn.0040a710
mov eax, dword [ebp - 0x4d0]
add esp, 0xc
mov byte [esi + eax], 0
mov eax, dword [ebp - 0x4c4]
or eax, 0x200
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x4c8], eax
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x3bc], 0
je 0x403826
lea eax, [ebp - 0x3cc]
push eax
lea ecx, [ebp - 0x4f4]
call fcn.00405340
mov esi, eax
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x4c4]
or eax, 2
jmp 0x403873
push 4
mov dword [ebp - 0x354], 0
lea ecx, [ebp - 0x354]
push str.9000
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x340], 0xf
mov byte [ebp - 0x354], 0
call fcn.00405980
mov dword [ebp - 4], 0x1a
lea esi, [ebp - 0x354]
mov eax, dword [ebp - 0x4c4]
or eax, 4
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 0x4c4], eax
mov eax, ecx
sub eax, edx
cmp eax, 0x11
jb 0x403922
lea eax, [edx + 0x11]
mov edi, esi
mov dword [esi + 0x10], eax
cmp ecx, 0x10
jb 0x4038a1
mov edi, dword [esi]
cmp edi, 0x42c9fd
jae 0x4038d6
lea eax, [edi + edx]
cmp eax, 0x42c9ec
jb 0x4038d6
cmp edi, 0x42c9ec
ja 0x4038c7
mov dword [ebp - 0x4c8], 0
jmp 0x4038e0
mov eax, edi
sub eax, 0x42c9ec
mov dword [ebp - 0x4c8], eax
jmp 0x4038e0
mov dword [ebp - 0x4c8], 0x11
lea eax, [edx + 1]
push eax
lea ecx, [edi + 0x11]
push edi
push ecx
call fcn.0040a710
push dword [ebp - 0x4c8]
push 0x42c9ec
push edi
call fcn.0040a710
mov edx, dword [ebp - 0x4c8]
mov eax, 0x11
sub eax, edx
push eax
lea eax, [edx + 0x42c9fd]
lea ecx, [edi + edx]
push eax
push ecx
call fcn.0040a710
add esp, 0x24
jmp 0x40393f
push 0x11
sub esp, 8
mov byte [ebp - 0x4d0], 0
mov ecx, esi
push dword [ebp - 0x4d0]
push 0x11
call fcn.00407420
mov esi, eax
movups xmm1, xmmword [esi]
mov eax, dword [ebp - 0x4c4]
movq xmm0, qword [esi + 0x10]
or eax, 0x400
movups xmmword [ebp - 0x36c], xmm1
mov dword [esi + 0x10], 0
movq qword [ebp - 0x35c], xmm0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 4], 0x1b
lea edx, [ebp - 0x36c]
cmp dword [ebp - 0x358], 0x10
mov eax, dword [ebp - 0x328]
mov esi, dword [ebp - 0x32c]
mov ecx, dword [ebp - 0x35c]
movd edi, xmm1
push ecx
cmovae edx, edi
sub eax, esi
push edx
cmp ecx, eax
ja 0x4039e7
cmp dword [ebp - 0x328], 0x10
lea eax, [ecx + esi]
mov dword [ebp - 0x32c], eax
lea eax, [ebp - 0x33c]
cmovae eax, dword [ebp - 0x33c]
add esi, eax
push esi
call fcn.0040a710
mov eax, dword [ebp - 0x35c]
add esp, 0xc
mov byte [eax + esi], 0
jmp 0x403a06
mov byte [ebp - 0x4d0], 0
push dword [ebp - 0x4d0]
push ecx
lea ecx, [ebp - 0x33c]
call fcn.00406960
mov edi, dword [ebp - 0x36c]
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x358]
cmp eax, 0x10
jb 0x403a40
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x403a36
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d91
push ecx
push edi
call fcn.00409072
add esp, 8
mov dword [ebp - 4], 0x19
mov eax, dword [ebp - 0x4c4]
test al, 4
je 0x403ab5
mov edx, dword [ebp - 0x340]
and eax, 0xfffffffb
mov dword [ebp - 0x4c4], eax
cmp edx, 0x10
jb 0x403a9a
mov ecx, dword [ebp - 0x354]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403a8a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d91
push edx
push ecx
call fcn.00409072
mov eax, dword [ebp - 0x4c4]
add esp, 8
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x340], 0xf
mov byte [ebp - 0x354], 0
mov dword [ebp - 4], 0x18
test al, 2
je 0x403b15
mov edx, dword [ebp - 0x4e0]
cmp edx, 0x10
jb 0x403afa
mov ecx, dword [ebp - 0x4f4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403af0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d91
push edx
push ecx
call fcn.00409072
add esp, 8
mov dword [ebp - 0x4e4], 0
mov dword [ebp - 0x4e0], 0xf
mov byte [ebp - 0x4f4], 0
cmp dword [ebp - 0x328], 0x10
lea edx, [ebp - 0x33c]
push dword [ebp - 0x32c]
cmovae edx, dword [ebp - 0x33c]
call fcn.00407100
mov byte [ebp - 4], 0x12
add esp, 4
mov edx, dword [ebp - 0x328]
cmp edx, 0x10
jb 0x403b81
mov ecx, dword [ebp - 0x33c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403b6b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d96
push edx
push ecx
call fcn.00409072
add esp, 8
jmp 0x403b81
mov edx, str.Error_
call fcn.00405f90
mov esi, dword [ebp - 0x3b4]
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x370]
cmp edx, 8
jb 0x403bcb
mov ecx, dword [ebp - 0x384]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403bc1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
mov eax, dword [ebp - 0x4c0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x4c4], eax
lea ecx, [ebp - 0x4b0]
call fcn.004049f0
mov eax, dword [ebp - 0x4c0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x4c4], eax
lea eax, [ebp - 0x450]
mov byte [ebp - 4], 0x1c
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.00408978
mov edx, dword [ebp - 0x388]
add esp, 4
cmp edx, 0x10
jb 0x403c7b
mov ecx, dword [ebp - 0x39c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403c71
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
lea ecx, [ebp - 0x3ec]
mov dword [ebp - 0x38c], 0
mov dword [ebp - 0x388], 0xf
mov byte [ebp - 0x39c], 0
call fcn.00403e50
mov edx, dword [ebp - 0x3f0]
cmp edx, 0x10
jb 0x403cdb
mov ecx, dword [ebp - 0x404]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403cd1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
mov edx, dword [ebp - 0x3b8]
cmp edx, 0x10
jb 0x403d15
mov ecx, dword [ebp - 0x3cc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403d0b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push edx
push ecx
call fcn.00409072
add esp, 8
mov eax, dword [ebp - 0x3a0]
cmp eax, 0x10
jb 0x40265a
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x403d41
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d9b
push ecx
push esi
call fcn.00409072
add esp, 8
jmp 0x40265a
call fcn.00405f80
call fcn.0040d4ef
call fcn.0040d4ef
call fcn.0040d4ef
call fcn.0040d4ef
call fcn.0040d4ef
call fcn.00401a70
call fcn.004019d0
call fcn.0040d4ef
call fcn.0040d4ef
call fcn.0040d4ef
int3