Function at 0x46f690
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4e6cf0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5c
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor edi, edi
push 2
mov dword [esp + 0x44], esi
mov dword [esp + 0x64], edi
call fcn.00445f00
add esp, 4
cmp eax, edi
mov dword [esp + 0x60], eax
je 0x46f6cd
mov word [eax], di
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x74], edi
mov byte [esp + 0x12], 0xff
mov dword [esp + 0x1c], edi
mov esi, dword [esp + 0x7c]
mov byte [esp + 0x74], 1
mov dword [esp + 0x48], esi
mov dword [esp + 0x2c], edi
test esi, esi
je 0x46f711
mov ax, word [esi]
cmp ax, 9
jb 0x46f706
cmp ax, 0xd
jbe 0x46f70c
cmp ax, 0x20
jne 0x46f711
add esi, 2
jmp 0x46f6f7
mov ax, word [esi]
xor edi, edi
cmp ax, 0x2d
mov byte [esp + 0x7c], 0
mov byte [esp + 0x10], 0
mov byte [esp + 0x11], 0
mov dword [esp + 0x34], edi
mov cl, 0x2a
jne 0x46f733
mov cl, al
movsx ecx, cl
movzx eax, ax
cmp ecx, eax
mov dword [esp + 0x58], ecx
jne 0x46f820
jmp 0x46f750
movzx edx, word [esi + 2]
cmp ecx, edx
jne 0x46f81c
xor eax, eax
mov ax, word [esi + 4]
mov ecx, eax
and ecx, 0xffdf
cmp cx, 0x48
je 0x46f81c
cmp ax, 9
jb 0x46f784
cmp ax, 0xd
jbe 0x46f81c
cmp ax, 0x20
je 0x46f81c
add esi, 4
mov eax, esi
mov ecx, 0x4f60a0
xor edx, edx
lea ebx, [ebx]
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x46f973
dec edx
jns 0x46f7a0
mov ax, word [esi]
xor ebx, ebx
cmp ax, bx
lea ecx, [esi + 2]
je 0x46f7e6
cmp ax, 9
jb 0x46f7d4
cmp ax, 0xd
jbe 0x46f7e6
cmp ax, 0x20
je 0x46f7e6
mov ax, word [esi + 2]
add esi, 2
cmp ax, bx
jne 0x46f7c8
mov ax, word [esi]
cmp ax, 9
jb 0x46f7f5
cmp ax, 0xd
jbe 0x46f7fb
cmp ax, 0x20
jne 0x46f800
add esi, 2
jmp 0x46f7e6
cmp word [ecx], 0x3a
je 0x46f91e
or edi, 7
movzx edx, word [esi]
mov ecx, dword [esp + 0x58]
cmp ecx, edx
je 0x46f750
mov dword [esp + 0x34], edi
push 2
call fcn.00445f00
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
je 0x46f837
mov word [eax], 0
push 2
call fcn.00445f00
add esp, 4
test eax, eax
mov dword [esp + 0x24], eax
je 0x46f84e
mov word [eax], 0
push 2
call fcn.00445f00
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
je 0x46f865
mov word [eax], 0
push 2
call fcn.00445f00
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [esp + 0x20], ebp
je 0x46f87f
mov word [ebp], 0
push 2
call fcn.00445f00
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x28], edi
je 0x46f898
mov word [edi], 0
mov ax, word [esi]
cmp ax, 0x2b
mov byte [esp + 0x74], 6
je 0x46f8d0
cmp ax, 0x23
je 0x46f8d0
cmp ax, 0x40
je 0x46f8d0
cmp ax, 0x24
je 0x46f8d0
cmp ax, 0x2a
je 0x46f8d0
cmp ax, 0x7e
je 0x46f8d0
cmp ax, 0x2e
je 0x46f8d0
cmp ax, 0x3f
jne 0x46f8e9
mov al, byte [esi]
add esi, 2
test al, al
mov byte [esp + 0x7c], al
je 0x46f8e9
movzx eax, word [esi]
movsx ecx, byte [esp + 0x7c]
cmp ecx, eax
je 0x46f8ef
cmp word [esi], 0x24
jne 0x46f8f8
mov dl, byte [esi]
mov byte [esp + 0x10], dl
add esi, 2
test esi, esi
je 0x46fa1e
mov ax, word [esi]
cmp ax, 9
jb 0x46f90f
cmp ax, 0xd
jbe 0x46f919
cmp ax, 0x20
jne 0x46fa1e
add esi, 2
jmp 0x46f900
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x50]
add ecx, 2
push eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
call fcn.00449970
add esp, 8
test eax, eax
jle 0x46f80d
mov ecx, dword [esp + 0x4c]
cmp ecx, ebx
je 0x46f96a
nop
mov ax, word [ecx]
cmp ax, 9
jb 0x46f95f
cmp ax, 0xd
jbe 0x46f965
cmp ax, 0x20
jne 0x46f96a
add ecx, 2
jmp 0x46f950
or edi, dword [esp + 0x50]
jmp 0x46f80d
mov eax, esi
mov ecx, 0x4f609c
mov edx, 1
nop
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x46f9da
dec edx
jns 0x46f980
mov ax, word [eax]
cmp ax, 9
jb 0x46f9a6
cmp ax, 0xd
jbe 0x46f9b1
cmp ax, 0x20
je 0x46f9b1
test ax, ax
jne 0x46f9da
add esi, 4
je 0x46f9d0
mov ax, word [esi]
cmp ax, 9
jb 0x46f9c5
cmp ax, 0xd
jbe 0x46f9cb
cmp ax, 0x20
jne 0x46f9d0
add esi, 2
jmp 0x46f9b6
mov byte [esp + 0x11], 1
jmp 0x46f80d
mov ax, word [esi]
test ax, ax
je 0x46fa00
cmp ax, 9
jb 0x46f9ee
cmp ax, 0xd
jbe 0x46fa00
cmp ax, 0x20
je 0x46fa00
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x46f9e2
mov ax, word [esi]
cmp ax, 9
jb 0x46fa0f
cmp ax, 0xd
jbe 0x46fa19
cmp ax, 0x20
jne 0x46f80d
add esi, 2
jmp 0x46fa00
xor eax, eax
mov ax, word [esi]
test ax, ax
mov dword [esp + 0x58], esi
je 0x46fa4e
lea esp, [esp]
cmp ax, 0x2c
je 0x46fa4e
cmp ax, 0x3d
je 0x46fa4e
cmp ax, 0x21
je 0x46fa4e
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x46fa30
mov ax, word [esi]
cmp ax, 0x2c
je 0x46fa63
cmp ax, 0x3d
je 0x46fa63
cmp ax, 0x21
jne 0x46fa7d
mov bl, byte [esi]
mov word [esi], 0
add esi, 2
test bl, bl
mov byte [esp + 0x13], bl
mov dword [esp + 0x3c], esi
jne 0x46fc38
mov al, byte [esp + 0x12]
inc al
test al, al
mov byte [esp + 0x12], al
jg 0x46fb62
mov eax, dword [esp + 0x40]
mov cl, byte [eax + 0x8a]
test cl, cl
jne 0x46fabc
test byte [eax + 0xb], 0xf
jne 0x46fabc
mov ecx, dword [esp + 0x48]
push 1
push 0
lea eax, [esp + 0x24]
push eax
push ecx
mov ecx, dword [esp + 0x50]
call fcn.004531a0
jmp 0x46fad3
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
push 1
push 0
lea edx, [esp + 0x24]
push edx
push eax
call fcn.00451c30
test edi, edi
mov esi, dword [esp + 0x1c]
je 0x46faf2
mov ecx, dword [0x51927c]
add edi, 0xfffffff8
push edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push ecx
call edi
jmp 0x46faf8
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
test ebp, ebp
je 0x46fb0b
mov edx, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push 0
push edx
call edi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46fb21
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call edi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x46fb38
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call edi
mov eax, dword [esp + 0x18]
test eax, eax
mov byte [esp + 0x74], 1
je 0x46f6f3
mov edx, eax
mov eax, dword [0x51927c]
add edx, 0xfffffff8
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x46f6f3
test edi, edi
je 0x46fb79
mov ecx, dword [0x51927c]
add edi, 0xfffffff8
push edi
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
test ebp, ebp
je 0x46fb90
mov edx, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46fbab
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x46fbc7
mov edx, eax
mov eax, dword [0x51927c]
add edx, 0xfffffff8
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x46fbe4
mov edx, dword [0x51927c]
mov ecx, eax
add ecx, 0xfffffff8
push ecx
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46fbff
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x470a1f
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
push 1
push 0x2c
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x6c]
call fcn.0045a420
push 0
lea ecx, [esp + 0x1c]
push ecx
push eax
call fcn.00449370
mov ebp, dword [esp + 0x24]
add esp, 0xc
push 0x5c
push ebp
call dword [sym.imp.SHLWAPI.dll_StrChrW]
mov edi, eax
test edi, edi
jne 0x46fd2f
mov eax, dword [esp + 0x28]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46fc8d
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x46fca3
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46fcba
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x46fcd1
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
test ebp, ebp
je 0x46fce3
mov eax, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push 0
push eax
call esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46fcfa
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x60]
test eax, eax
je 0x470a1f
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
mov word [edi], 0
add edi, 2
push 0x4f6094
push edi
mov dword [esp + 0x38], edi
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
jne 0x46fe1f
push 0x5c
push eax
push edi
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
test eax, eax
jne 0x46fe1f
mov eax, dword [esp + 0x28]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46fd7d
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x46fd94
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46fdab
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x46fdc1
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
test ebp, ebp
je 0x46fdd4
mov ecx, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push 0
push ecx
call esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x46fdeb
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x60]
test eax, eax
je 0x470bc5
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
mov word [eax], 0
add eax, 2
cmp word [eax], 0x5c
mov dword [esp + 0x38], eax
jne 0x46fe3f
cmp word [eax + 2], 0
jne 0x46fe3f
add eax, 2
mov dword [esp + 0x38], eax
cmp bl, 0x2c
jne 0x46ff21
push 1
push 0x2c
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x6c]
call fcn.0045a420
push 0
lea edx, [esp + 0x18]
push edx
push eax
call fcn.00449370
mov esi, dword [esp + 0x4c]
add esp, 0xc
push 0
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.004152c8
cmp byte [esp + 0x7c], 0x2e
jne 0x46fec6
mov ecx, dword [esp + 0x3c]
cmp word [ecx], 0x2c
jne 0x46fec6
push 1
mov edi, ecx
push 0x2c
lea edx, [esp + 0x44]
add edi, 2
push edx
lea ecx, [esp + 0x6c]
mov dword [esp + 0x48], edi
call fcn.0045a420
push 0
lea ecx, [esp + 0x2c]
push ecx
push eax
call fcn.00449370
add esp, 0xc
push 0
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.004152c8
mov ebp, dword [esp + 0x14]
cmp word [ebp], 0
jne 0x470086
push str.RegDat
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [eax + eax + 2]
push esi
call fcn.00445f00
mov ecx, esi
mov edx, ecx
shr ecx, 2
mov esi, str.RegDat
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
add esp, 4
test ebp, ebp
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x14], eax
je 0x470086
mov eax, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push 0
push eax
jmp 0x470080
cmp bl, 0x21
je 0x470086
cmp word [esi], 0
mov bl, byte [esp + 0x7c]
jne 0x46ff47
cmp bl, 0x24
je 0x46ff67
cmp bl, 0x2a
je 0x46ff47
cmp bl, 0x7e
jne 0x470086
cmp bl, 0x24
je 0x46ff67
cmp bl, 0x2a
je 0x46ff67
cmp bl, 0x7e
je 0x46ff67
lea ecx, [esp + 0x3c]
push ecx
call fcn.0043f2e0
mov esi, dword [esp + 0x40]
add esp, 4
xor edi, edi
test esi, esi
mov dword [esp + 0x58], edi
je 0x46ffa0
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
lea edx, [edi + 2]
push edx
call fcn.00445f00
mov ecx, edi
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, eax
mov dword [esp + 0x58], edi
test edi, edi
mov byte [esp + 0x74], 7
mov ebp, edi
je 0x46ffcb
jmp 0x46ffb0
mov ax, word [ebp]
cmp ax, 9
jb 0x46ffc0
cmp ax, 0xd
jbe 0x46ffc6
cmp ax, 0x20
jne 0x46ffcb
add ebp, 2
jmp 0x46ffb0
mov al, byte [esp + 0x80]
test al, al
je 0x46ffe2
push edi
lea ecx, [esp + 0x24]
call fcn.004574e0
jmp 0x46fff5
mov ecx, dword [esp + 0x40]
push 1
push 0
lea eax, [esp + 0x28]
push eax
push edi
call fcn.00451c30
mov esi, dword [esp + 0x20]
test esi, esi
mov dword [esp + 0x2c], esi
je 0x47001b
mov ax, word [esi]
cmp ax, 9
jb 0x470010
cmp ax, 0xd
jbe 0x470016
cmp ax, 0x20
jne 0x47001b
add esi, 2
jmp 0x470001
test bl, bl
jne 0x47004e
push ebp
push 0x4f607c
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x470039
mov dword [esp + 0x2c], 0x4ebd38
jmp 0x47006a
mov ax, word [esi]
cmp ax, 0x23
je 0x470048
cmp ax, 0x40
jne 0x47006a
mov dword [esp + 0x2c], esi
jmp 0x47006a
cmp bl, 0x23
je 0x470058
cmp bl, 0x40
jne 0x47006a
cmp word [esi], 0
mov dword [esp + 0x2c], esi
jne 0x47006a
mov dword [esp + 0x2c], 0
test edi, edi
mov byte [esp + 0x74], 6
je 0x470086
mov ecx, dword [0x51927c]
add edi, 0xfffffff8
push edi
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [esp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push str.HKLM
push edi
call esi
test eax, eax
je 0x470130
push str.HKEY_LOCAL_MACHINE
push edi
call esi
test eax, eax
je 0x470130
push str.HKCU
push edi
call esi
test eax, eax
je 0x470129
push str.HKEY_CURRENT_USER
push edi
call esi
test eax, eax
je 0x470129
push str.HKCR
push edi
call esi
test eax, eax
je 0x470122
push str.HKEY_CLASSES_ROOT
push edi
call esi
test eax, eax
je 0x470122
push 0x4f5fe0
push edi
call esi
test eax, eax
je 0x47011b
push str.HKEY_USERS
push edi
call esi
test eax, eax
je 0x47011b
push str.HKCC
push edi
call esi
test eax, eax
je 0x470114
push str.HKEY_CURRENT_CONFIG
push edi
call esi
test eax, eax
jne 0x470fdd
mov ebx, VariantCopy
jmp 0x470135
mov ebx, SysReAllocStringLen
jmp 0x470135
mov ebx, SysReAllocStringLen
jmp 0x470135
mov ebx, SysReAllocStringLen
jmp 0x470135
mov ebx, SysReAllocStringLen
mov ecx, dword [esp + 0x14]
xor edi, edi
cmp word [ecx], di
mov dword [esp + 0x48], ebx
je 0x470e28
mov al, byte [esp + 0x7c]
cmp al, 0x2e
je 0x470158
cmp al, 0x3f
je 0x470158
xor ebp, ebp
jmp 0x47015d
mov ebp, 1
cmp al, 0x3f
je 0x470170
cmp ebp, edi
je 0x47016a
cmp word [ecx], di
je 0x470170
mov dword [esp + 0x3c], edi
jmp 0x470178
mov dword [esp + 0x3c], 1
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0xca
mov dword [esp + 0x50], edi
call fcn.00445f00
add esp, 4
cmp eax, edi
mov dword [esp + 0x80], eax
je 0x47019e
mov word [eax], di
push 2
call fcn.00445f00
add esp, 4
cmp eax, edi
mov dword [esp + 0x34], eax
je 0x4701b3
mov word [eax], di
cmp byte [esp + 0x7c], 0x2e
lea ebx, [esp + 0x34]
je 0x4701c5
lea ebx, [esp + 0x80]
push 0x1001
mov dword [esp + 0x5c], ebx
call fcn.00445f00
add esp, 4
test eax, eax
mov dword [esp + 0x2c], eax
je 0x4701e1
mov byte [eax], 0
mov edi, dword [esp + 0x38]
lea edx, [esp + 0x50]
push edx
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x48]
push eax
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x34]
push ecx
push edi
push edx
push eax
mov byte [esp + 0x8c], 0xa
mov dword [esp + 0x5c], 0xfff
mov dword [esp + 0x68], 0
call fcn.0044ae90
mov esi, eax
add esp, 0x18
test esi, esi
jge 0x4703f5
cmp word [edi], 0
mov eax, dword [esp + 0x50]
jne 0x47025a
cmp eax, 2
jne 0x47025a
cmp esi, 0xfffffffe
jne 0x47025a
test ebp, ebp
je 0x470d00
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x4f5f90
mov ecx, ebx
call fcn.00446330
jmp 0x470d00
test eax, eax
mov edi, eax
jne 0x470265
mov edi, 1
test ebp, ebp
mov dword [esp + 0x4c], edi
je 0x4702f3
movzx ecx, word [0x51e010]
push str.ERROR
mov dword [esp + 0x80], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, dword [ebx]
mov ebp, eax
lea edi, [ebp + 2]
lea eax, [edi + edi + 4]
push edx
call fcn.00445f60
mov esi, eax
add esp, 4
test esi, esi
mov dword [ebx], esi
je 0x4702ad
mov word [esi + edi*2 + 2], 0
mov eax, dword [esp + 0x7c]
push edi
push esi
push ebp
push str.ERROR
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test edi, edi
jge 0x4702ca
xor edi, edi
lea eax, [edi + edi + 4]
push esi
mov word [esi + edi*2], 0
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [ebx], eax
je 0x470d00
mov word [eax + edi*2 + 2], 0
jmp 0x470d00
mov eax, dword [esp + 0x2c]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x470310
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x470328
mov edx, eax
mov eax, dword [0x51927c]
add edx, 0xfffffff8
push edx
push 0
push eax
call esi
mov eax, dword [esp + 0x80]
test eax, eax
je 0x470344
mov edx, dword [0x51927c]
mov ecx, eax
add ecx, 0xfffffff8
push ecx
push 0
push edx
call esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x47035a
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x470371
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov edx, dword [esp + 0x14]
mov eax, dword [0x51927c]
add edx, 0xfffffff8
push edx
push 0
push eax
call esi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47039a
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4703b1
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4703c7
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4703de
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
cmp esi, 1
jne 0x4704b9
test ebp, ebp
je 0x470488
movzx edx, word [0x51e010]
push str.REG_SZ
mov dword [esp + 0x54], edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebx]
mov ebp, eax
lea edi, [ebp + 2]
lea eax, [edi + edi + 4]
push ecx
call fcn.00445f60
mov esi, eax
add esp, 4
test esi, esi
mov dword [ebx], esi
je 0x47043f
mov word [esi + edi*2 + 2], 0
mov edx, dword [esp + 0x50]
push edi
push esi
push ebp
push str.REG_SZ
push 0
push edx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test edi, edi
jge 0x47045c
xor edi, edi
lea eax, [edi + edi + 4]
push esi
mov word [esi + edi*2], 0
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [ebx], eax
je 0x47047c
mov word [eax + edi*2 + 2], 0
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x470d00
mov al, byte [esp + 0x7c]
cmp al, 0x24
mov edi, dword [esp + 0x80]
je 0x4704a3
cmp al, 0x2e
je 0x4704a3
test al, al
jne 0x47093f
mov edx, dword [esp + 0x2c]
mov eax, edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x2c], eax
jmp 0x470cfc
cmp esi, 0xb
jne 0x47058a
test ebp, ebp
je 0x47054c
movzx eax, word [0x51e010]
push str.REG_QWORD
mov dword [esp + 0x54], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebx]
mov ebp, eax
lea edi, [ebp + 2]
lea eax, [edi + edi + 4]
push ecx
call fcn.00445f60
mov esi, eax
add esp, 4
test esi, esi
mov dword [ebx], esi
je 0x470503
mov word [esi + edi*2 + 2], 0
mov edx, dword [esp + 0x50]
push edi
push esi
push ebp
push str.REG_QWORD
push 0
push edx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test edi, edi
jge 0x470520
xor edi, edi
lea eax, [edi + edi + 4]
push esi
mov word [esi + edi*2], 0
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [ebx], eax
je 0x470540
mov word [eax + edi*2 + 2], 0
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x470d00
mov al, byte [esp + 0x7c]
cmp al, 0x2b
mov edi, dword [esp + 0x80]
je 0x470563
cmp al, 0x2e
jne 0x47093f
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
push str.0x_I64x
push 0x28
push edi
call fcn.004c1f3f
add esp, 0x14
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
jmp 0x470cfc
cmp esi, 4
jne 0x470753
test ebp, ebp
je 0x47061d
movzx ecx, word [0x51e010]
push str.REG_DWORD
mov dword [esp + 0x54], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, dword [ebx]
mov ebp, eax
lea edi, [ebp + 2]
lea eax, [edi + edi + 4]
push edx
call fcn.00445f60
mov esi, eax
add esp, 4
test esi, esi
mov dword [ebx], esi
je 0x4705d4
mov word [esi + edi*2 + 2], 0
mov eax, dword [esp + 0x50]
push edi
push esi
push ebp
push str.REG_DWORD
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test edi, edi
jge 0x4705f1
xor edi, edi
lea eax, [edi + edi + 4]
push esi
mov word [esi + edi*2], 0
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [ebx], eax
je 0x470611
mov word [eax + edi*2 + 2], 0
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x470d00
mov al, byte [esp + 0x7c]
cmp al, 0x23
mov edi, dword [esp + 0x80]
je 0x470738
cmp al, 0x2e
je 0x470738
mov eax, dword [esp + 0x2c]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x470655
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x47066c
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
test edi, edi
je 0x47067e
mov eax, dword [0x51927c]
add edi, 0xfffffff8
push edi
push 0
push eax
call esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x470695
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4706ac
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4706d6
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4706ec
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x470703
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x60]
test eax, eax
je 0x470a1f
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
push ecx
push str.0x_x
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x470cfc
cmp esi, 3
jne 0x470891
test ebp, ebp
je 0x4707e6
movzx edx, word [0x51e010]
push str.REG_BINARY
mov dword [esp + 0x54], edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebx]
mov ebp, eax
lea edi, [ebp + 2]
lea eax, [edi + edi + 4]
push ecx
call fcn.00445f60
mov esi, eax
add esp, 4
test esi, esi
mov dword [ebx], esi
je 0x47079d
mov word [esi + edi*2 + 2], 0
mov edx, dword [esp + 0x50]
push edi
push esi
push ebp
push str.REG_BINARY
push 0
push edx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test edi, edi
jge 0x4707ba
xor edi, edi
lea eax, [edi + edi + 4]
push esi
mov word [esi + edi*2], 0
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [ebx], eax
je 0x4707da
mov word [eax + edi*2 + 2], 0
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x470d00
mov al, byte [esp + 0x7c]
cmp al, 0x40
mov edi, dword [esp + 0x80]
je 0x4707fd
cmp al, 0x2e
jne 0x47093f
mov eax, dword [esp + 0x44]
lea esi, [eax + eax*4 + 6]
lea eax, [esi + esi + 2]
push edi
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [esp + 0x80], eax
je 0x470823
mov word [eax + esi*2], 0
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x2c]
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
mov word [eax], 0
mov ecx, dword [esp + 0x44]
test ecx, ecx
jle 0x470851
movzx ecx, byte [esi]
push ecx
push str.0x_02X
push eax
call ebx
add esp, 0xc
inc esi
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x44]
mov edi, 1
add ebp, 8
cmp eax, edi
jle 0x470cfc
lea esp, [esp]
movzx eax, byte [esi]
push eax
push str._0x_02X
push ebp
call ebx
mov eax, dword [esp + 0x50]
add esp, 0xc
inc esi
inc edi
add ebp, 0xa
cmp edi, eax
jl 0x470870
jmp 0x470cfc
cmp esi, 2
jne 0x470aa1
test ebp, ebp
je 0x470924
movzx edx, word [0x51e010]
push str.REG_EXPAND_SZ
mov dword [esp + 0x54], edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebx]
mov ebp, eax
lea edi, [ebp + 2]
lea eax, [edi + edi + 4]
push ecx
call fcn.00445f60
mov esi, eax
add esp, 4
test esi, esi
mov dword [ebx], esi
je 0x4708db
mov word [esi + edi*2 + 2], 0
mov edx, dword [esp + 0x50]
push edi
push esi
push ebp
push str.REG_EXPAND_SZ
push 0
push edx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test edi, edi
jge 0x4708f8
xor edi, edi
lea eax, [edi + edi + 4]
push esi
mov word [esi + edi*2], 0
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [ebx], eax
je 0x470918
mov word [eax + edi*2 + 2], 0
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x470d00
mov al, byte [esp + 0x7c]
cmp al, 0x7e
mov edi, dword [esp + 0x80]
je 0x470a39
cmp al, 0x2e
je 0x470a39
mov eax, dword [esp + 0x2c]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x47095b
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x470972
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
test edi, edi
je 0x470985
mov edx, dword [0x51927c]
add edi, 0xfffffff8
push edi
push 0
push edx
call esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x47099b
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4709b2
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov edx, dword [esp + 0x14]
mov eax, dword [0x51927c]
add edx, 0xfffffff8
push edx
push 0
push eax
call esi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4709db
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4709f2
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x470a08
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x60]
test eax, eax
je 0x470a1f
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
mov al, byte [esp + 0x10]
test al, al
je 0x470a8b
mov ecx, dword [esp + 0x40]
mov al, byte [ecx + 0x8a]
test al, al
jne 0x470a70
test byte [ecx + 0xb], 0xf
jne 0x470a70
mov eax, dword [esp + 0x2c]
push 1
push 0
lea edx, [esp + 0x88]
push edx
push eax
call fcn.004531a0
jmp 0x470cfc
mov eax, dword [esp + 0x2c]
push 1
push 0
lea edx, [esp + 0x88]
push edx
push eax
call fcn.00451c30
jmp 0x470cfc
mov ecx, dword [esp + 0x2c]
mov eax, edi
mov dword [esp + 0x80], ecx
mov dword [esp + 0x2c], eax
jmp 0x470cfc
cmp esi, 7
jne 0x470cb1
test ebp, ebp
je 0x470aca
push 0xffffffffffffffff
push 0xffffffffffffffff
push str.REG_MULTI_SZ
mov ecx, ebx
call fcn.00446330
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x470d00
mov al, byte [esp + 0x7c]
cmp al, 0x2a
je 0x470bdf
cmp al, 0x2e
je 0x470bdf
mov eax, dword [esp + 0x2c]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x470afb
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x470b11
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x80]
test eax, eax
je 0x470b2b
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x470b42
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x470b58
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [0x51927c]
add ecx, 0xfffffff8
push ecx
push 0
push edx
call esi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x470b81
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x470b98
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x470baf
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x60]
test eax, eax
je 0x470bc5
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x80]
shr esi, 1
lea edi, [esi*4 + 6]
lea eax, [edi + edi + 2]
push ecx
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [esp + 0x80], eax
je 0x470c11
mov word [eax + edi*2], 0
mov ecx, dword [esp + 0x2c]
lea esi, [ecx + esi*2]
cmp ecx, esi
jae 0x470caa
mov bl, byte [esp + 0x10]
cmp bl, 0x2a
jne 0x470c5e
cmp word [ecx], 0x5c
jne 0x470c5e
mov dx, word [ecx + 2]
cmp dx, 0x30
je 0x470c44
cmp dx, 0x5c
je 0x470c44
test dx, dx
jne 0x470c5e
mov word [eax], 0x5c
mov dx, word [ecx + 2]
add ecx, 2
add eax, 2
mov word [eax], dx
add eax, 2
add ecx, 2
jmp 0x470ca2
mov dx, word [ecx]
test dx, dx
je 0x470c71
mov word [eax], dx
add eax, 2
add ecx, 2
jmp 0x470ca2
add ecx, 2
cmp bl, 0x24
jne 0x470c92
cmp ecx, esi
jae 0x470caa
cmp word [ecx], 0
je 0x470caa
mov word [eax], 0xd
add eax, 2
mov word [eax], 0xa
jmp 0x470c9f
mov word [eax], 0x5c
add eax, 2
mov word [eax], 0x30
add eax, 2
cmp ecx, esi
jb 0x470c20
mov word [eax], 0
jmp 0x470cfc
test ebp, ebp
je 0x470ce9
mov eax, dword [ebx]
push eax
mov eax, 0x66
call fcn.00445f60
add esp, 4
test eax, eax
mov dword [ebx], eax
je 0x470cd1
mov word [eax + 0x64], 0
push esi
push 0x4f4acc
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [esp + 0x48]
add esp, 0xc
test eax, eax
jne 0x470d00
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x470cf8
mov eax, 1
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x14]
cmp word [ebp], 0
je 0x470d1d
mov ecx, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x44]
push ebp
call fcn.00444550
mov edi, dword [esp + 0x28]
cmp word [edi], 0
je 0x470d34
mov edx, dword [ebx]
mov ecx, dword [esp + 0x40]
push edx
push edi
call fcn.00444550
mov eax, dword [esp + 0x2c]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x470d50
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x470d67
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x80]
test eax, eax
je 0x470d81
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [0x51927c]
add edi, 0xfffffff8
push edi
push 0
push eax
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x470da6
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov edx, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push 0
push edx
call esi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x470dcb
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x470de2
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x470df9
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x60]
test eax, eax
je 0x470e0f
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
mov ebp, dword [esp + 0x2c]
cmp ebp, edi
je 0x47172c
mov al, byte [esp + 0x7c]
cmp al, 0x2b
je 0x470e59
test al, al
jne 0x470f4b
mov ax, word [ebp]
cmp ax, 0x2b
jne 0x470f8e
add ebp, 2
mov dword [esp + 0x2c], ebp
mov al, byte [esp + 0x11]
test al, al
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
je 0x47165f
xor eax, eax
mov ax, word [ebp]
cmp ax, 0x30
jb 0x470e83
cmp ax, 0x39
jbe 0x471577
mov ecx, eax
or ecx, 0x20
cmp cx, 0x61
jb 0x470e98
cmp cx, 0x66
jbe 0x471577
mov eax, dword [esp + 0x28]
cmp eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x470eb3
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call esi
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x470ec9
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov edx, dword [esp + 0x14]
mov eax, dword [0x51927c]
add edx, 0xfffffff8
push edx
push edi
push eax
call esi
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x470ef0
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x470f06
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x470f1b
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call esi
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x470f31
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
cmp al, 0x23
je 0x470f9f
cmp al, 0x40
je 0x471047
cmp al, 0x2a
je 0x4710f9
cmp al, 0x7e
je 0x4712a2
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
shl eax, 1
push eax
push ebp
push 1
push ecx
push edx
push ebx
call fcn.004402a0
add esp, 0x18
mov esi, eax
jmp 0x47132d
cmp ax, 0x23
jne 0x471036
add ebp, 2
mov dword [esp + 0x2c], ebp
mov al, byte [esp + 0x11]
test al, al
mov dword [esp + 0x80], edi
je 0x471504
xor eax, eax
mov ax, word [ebp]
cmp ax, 0x30
jb 0x470fc8
cmp ax, 0x39
jbe 0x4714cc
mov ecx, eax
or ecx, 0x20
cmp cx, 0x61
jb 0x470fdd
cmp cx, 0x66
jbe 0x4714cc
lea ecx, [esp + 0x28]
call fcn.0043f290
lea ecx, [esp + 0x20]
call fcn.0043f290
lea ecx, [esp + 0x14]
call fcn.0043f290
lea ecx, [esp + 0x24]
call fcn.0043f290
lea ecx, [esp + 0x18]
call fcn.0043f290
lea ecx, [esp + 0x1c]
call fcn.0043f290
lea ecx, [esp + 0x60]
call fcn.0043f290
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
cmp ax, 0x40
jne 0x4710e8
add ebp, 2
mov dword [esp + 0x2c], ebp
mov ecx, dword [esp + 0x2c]
push ecx
xor esi, esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebp, eax
push ebp
lea ecx, [esp + 0x84]
call fcn.00446080
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x78], 0xb
call fcn.0043f2e0
mov edi, dword [esp + 0x84]
add esp, 4
test ebp, ebp
jle 0x4713ef
mov ecx, dword [esp + 0x2c]
mov ax, word [ecx]
test ax, ax
je 0x4713ef
xor edx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
mov dl, byte [esp + 0x11]
test dl, dl
je 0x4713bc
cmp ax, 0x30
jne 0x4710c5
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x78
jne 0x4710c5
add ecx, 4
mov dword [esp + 0x2c], ecx
push 2
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x34]
push edx
call fcn.004470e0
lea eax, [esp + 0x38]
push eax
call fcn.0043f2e0
add esp, 0x10
jmp 0x4713df
cmp ax, 0x2a
jne 0x471295
add ebp, 2
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x2c]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
lea edx, [edi + 0x10]
push edx
lea ecx, [esp + 0x84]
xor esi, esi
call fcn.00446280
mov ebx, dword [esp + 0x80]
lea edi, [ebp + edi*2]
cmp ebp, edi
mov byte [esp + 0x74], 0xc
mov edx, ebx
mov eax, ebp
jae 0x471182
mov ebp, 0xa
jmp 0x471140
mov cl, byte [esp + 0x10]
cmp cl, 0x2a
mov word [edx], 0
jne 0x471371
cmp word [eax], 0x5c
jne 0x471393
cmp word [eax + 2], 0x5c
jne 0x471393
mov cx, word [eax + 2]
add eax, 2
mov word [edx], cx
add eax, 2
add edx, 2
xor esi, esi
cmp eax, edi
jb 0x471140
cmp esi, 2
jge 0x47119d
mov ebp, 2
sub ebp, esi
xor eax, eax
mov ecx, ebp
shr ecx, 1
mov edi, edx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
add esi, ebp
lea edx, [edx + ebp*2]
mov ecx, dword [esp + 0x38]
mov eax, 2
sub eax, esi
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x30]
mov word [eax], 0
sub eax, ebx
push eax
mov eax, dword [esp + 0x4c]
push ebx
push 7
push ecx
push edx
push eax
call fcn.004402a0
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
add esp, 0x18
test ebx, ebx
mov edi, eax
je 0x4711e4
mov ecx, dword [0x51927c]
add ebx, 0xfffffff8
push ebx
push 0
push ecx
call esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4711fb
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x471211
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [0x51927c]
add ecx, 0xfffffff8
push ecx
push 0
push edx
call esi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47123a
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x471251
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x471268
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call esi
mov eax, dword [esp + 0x60]
test eax, eax
je 0x47127e
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
cmp ax, 0x7e
jne 0x470f67
add ebp, 2
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
push eax
lea ecx, [esp + 0x84]
call fcn.00446280
cmp word [ebp], di
mov esi, dword [esp + 0x80]
mov byte [esp + 0x74], 0xd
mov ecx, ebp
mov eax, esi
je 0x4712fd
mov edi, 0x30
mov dx, word [ecx]
cmp dx, 0x5c
jne 0x4712ee
cmp word [ecx + 2], di
jne 0x4712ee
mov word [eax], 0
add eax, 2
add ecx, 4
jmp 0x4712f7
mov word [eax], dx
add eax, 2
add ecx, 2
cmp word [ecx], 0
jne 0x4712d2
mov ecx, dword [esp + 0x30]
mov word [eax], 0
sub eax, esi
sar eax, 1
shl eax, 1
push eax
mov eax, dword [esp + 0x3c]
push esi
push 2
push eax
push ecx
push ebx
call fcn.004402a0
add esp, 0x18
lea ecx, [esp + 0x80]
mov esi, eax
call fcn.0043f290
lea ecx, [esp + 0x28]
call fcn.0043f290
lea ecx, [esp + 0x20]
call fcn.0043f290
lea ecx, [esp + 0x14]
call fcn.0043f290
lea ecx, [esp + 0x24]
call fcn.0043f290
lea ecx, [esp + 0x18]
call fcn.0043f290
lea ecx, [esp + 0x1c]
call fcn.0043f290
lea ecx, [esp + 0x60]
call fcn.0043f290
jmp 0x471861
cmp cl, 0x24
jne 0x471393
cmp word [eax], 0xd
jne 0x471393
cmp word [eax + 2], bp
jne 0x471393
mov word [edx], 0
add eax, 4
add edx, 2
inc esi
jmp 0x471179
mov cx, word [eax]
cmp cx, 0x5c
jne 0x47116e
cmp word [eax + 2], 0x30
jne 0x47116e
mov word [edx], 0
add edx, 2
add eax, 4
inc esi
jmp 0x471179
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.00449970
add esp, 8
test eax, eax
jle 0x4713df
lea eax, [esp + 0x2c]
push eax
call fcn.0043f2e0
add esp, 4
mov cl, byte [esp + 0x58]
mov byte [edi + esi], cl
inc esi
cmp esi, ebp
jl 0x471084
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push esi
push edi
push 3
push edx
push eax
push ebx
call fcn.004402a0
add esp, 0x18
test edi, edi
mov esi, eax
je 0x471423
mov ecx, dword [0x51927c]
add edi, 0xfffffff8
push edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push ecx
call edi
jmp 0x471429
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x471440
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call edi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x471456
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call edi
mov ecx, dword [esp + 0x14]
mov edx, dword [0x51927c]
add ecx, 0xfffffff8
push ecx
push 0
push edx
call edi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47147f
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call edi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x471496
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call edi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4714ad
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call edi
mov eax, dword [esp + 0x60]
test eax, eax
je 0x471861
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call edi
jmp 0x471861
cmp ax, 0x30
jne 0x4714e3
mov cx, word [ebp + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x4714e3
add ebp, 4
push ebp
call fcn.00447020
add esp, 4
mov dword [esp + 0x80], eax
push 4
lea ecx, [esp + 0x84]
push ecx
push 4
jmp 0x4715a8
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x30]
push eax
call fcn.00449a90
add esp, 8
cmp eax, 1
jge 0x4714f3
lea ecx, [esp + 0x28]
call fcn.0043f290
lea ecx, [esp + 0x20]
call fcn.0043f290
lea ecx, [esp + 0x14]
call fcn.0043f290
lea ecx, [esp + 0x24]
call fcn.0043f290
lea ecx, [esp + 0x18]
call fcn.0043f290
lea ecx, [esp + 0x1c]
call fcn.0043f290
lea ecx, [esp + 0x60]
call fcn.0043f290
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
cmp ax, 0x30
jne 0x47158e
mov dx, word [ebp + 2]
or dx, 0x20
cmp dx, 0x78
jne 0x47158e
add ebp, 4
push ebp
call fcn.00447020
add esp, 4
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
push 8
lea ecx, [esp + 0x5c]
push ecx
push 0xb
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
push edx
push eax
push ebx
call fcn.004402a0
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, eax
mov eax, dword [esp + 0x40]
add esp, 0x18
cmp eax, edi
je 0x4715d9
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call ebx
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x4715ef
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call ebx
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x471617
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call ebx
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x47162c
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call ebx
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x471642
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call ebx
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x471861
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
jmp 0x47185f
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.00449970
add esp, 8
test eax, eax
jg 0x47159f
mov eax, dword [esp + 0x28]
cmp eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x471695
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x4716aa
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [0x51927c]
add ecx, 0xfffffff8
push ecx
push edi
push edx
call esi
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x4716d1
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call esi
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x4716e7
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x4716fd
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x471712
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call esi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 8
cmp byte [esp + 0x13], 0x21
jne 0x471762
mov eax, dword [esp + 0x38]
cmp word [eax], di
jne 0x471762
mov eax, dword [esp + 0x34]
cmp eax, edi
je 0x471752
mov ecx, dword [esp + 0x30]
push eax
push ecx
push ebx
call fcn.00448390
jmp 0x4717bc
mov edx, dword [esp + 0x30]
push edx
push ebx
call fcn.00458fd0
add esp, 8
jmp 0x4717bf
cmp dword [esp + 0x34], edi
je 0x4717ac
movzx ecx, word [0x518dc4]
mov edx, dword [esp + 0x30]
push edi
lea eax, [esp + 0x84]
push eax
push edi
or ecx, 0x2001b
push ecx
push edi
push edi
push edi
push edx
push ebx
mov dword [esp + 0xa4], edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov esi, eax
mov eax, dword [esp + 0x80]
cmp eax, edi
je 0x4717c1
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4717c1
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
push eax
push ecx
push ebx
call fcn.00440340
add esp, 0xc
mov esi, eax
cmp esi, 2
jne 0x4717c8
xor esi, esi
mov eax, dword [esp + 0x28]
cmp eax, edi
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x4717e4
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call ebx
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x4717f9
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [0x51927c]
add ecx, 0xfffffff8
push ecx
push edi
push edx
call ebx
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x471820
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call ebx
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x471836
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call ebx
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x47184c
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call ebx
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x471861
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call ebx
mov ecx, dword [esp + 0x6c]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x68
ret 8