Function at 0x480c4d
Capabilities:
Link many functions at runtime
Query or enumerate registry value
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc60
mov eax, dword [0x4dd52c]
push ebx
mov dword [ebp - 4], eax
push esi
push edi
mov esi, dword [ebp + 8]
xor ebx, ebx
mov edx, 0x81
xor eax, eax
mov word [ebp - 0xa2c], bx
mov ecx, edx
lea edi, [ebp - 0xa2a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - 0x824], bx
mov ecx, edx
lea edi, [ebp - 0x822]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov word [ebp - 0x414], bx
mov ecx, edx
xor eax, eax
lea edi, [ebp - 0x412]
rep stosd dword es:[edi], eax
push 0x1f7a8
push ebx
mov dword [ebp - 0xc50], esi
mov dword [ebp - 0xc3c], ebx
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
je 0x4815a1
xor eax, eax
mov ecx, 0x7dea
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
mov edi, dword [sym.imp.msvcrt.dll_wcscpy]
and dword [ebx + 0x10], 0
or dword [ebx + 0x8174], 0xffffffff
or dword [ebx + 0x8178], 0xffffffff
mov dword [ebx + 4], esi
mov dword [ebx + 8], eax
mov esi, 0x405a00
lea eax, [ebx + 0xb3f0]
push esi
push eax
mov dword [ebx], 0x50534444
mov dword [ebx + 0xc], 1
call edi
lea eax, [ebx + 0xb5f8]
push esi
push eax
call edi
lea eax, [ebx + 0xb800]
push esi
push eax
call edi
lea eax, [ebx + 0xba08]
push esi
push eax
call edi
xor eax, eax
add esp, 0x20
mov dword [ebx + 0x1beb0], eax
mov dword [ebx + 0x1beb4], eax
mov dword [ebx + 0x1beb8], eax
mov dword [ebx + 0x1bec0], eax
mov dword [ebx + 0x1bec4], eax
mov dword [ebx + 0x1bebc], eax
mov dword [ebx + 0x1bec8], eax
mov dword [ebx + 0x1bed0], eax
mov dword [ebx + 0x1becc], eax
mov ecx, 0x82
lea edi, [ebp - 0x414]
rep stosd dword es:[edi], eax
push 0x405e8c
lea eax, [ebp - 0xa2c]
push eax
lea eax, [ebp - 0x824]
push eax
push dword [ebp - 0xc50]
call fcn.00480395
push 0x412750
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0xa2c]
push eax
lea eax, [ebp - 0x414]
push 0x40c25c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x412740
push eax
mov dword [ebx + 0x1beb0], eax
call esi
push 0x412730
push dword [ebx + 0x1beb0]
mov dword [ebx + 0x1beb8], eax
call esi
push 0x412720
push dword [ebx + 0x1beb0]
mov dword [ebx + 0x1bec0], eax
call esi
push 0x412714
push dword [ebx + 0x1beb0]
mov dword [ebx + 0x1bec4], eax
call esi
push 0x412700
push dword [ebx + 0x1beb0]
mov dword [ebx + 0x1bebc], eax
call esi
push 0x4126ec
push dword [ebx + 0x1beb0]
mov dword [ebx + 0x1bec8], eax
call esi
push 0x4126e0
push dword [ebx + 0x1beb0]
mov dword [ebx + 0x1bed0], eax
call esi
mov dword [ebx + 0x1becc], eax
xor eax, eax
mov edx, 0x2054
mov ecx, edx
lea edi, [ebx + 0xbc10]
rep stosd dword es:[edi], eax
mov ecx, edx
lea edi, [ebx + 0x13d60]
rep stosd dword es:[edi], eax
mov ecx, edx
lea edi, [ebx + 0x20]
rep stosd dword es:[edi], eax
mov ecx, 0x218
lea edi, [ebx + 0x8180]
rep stosd dword es:[edi], eax
or dword [ebx + 0x1be88], 0xffffffff
or dword [ebx + 0x8148], 0xffffffff
push 0x408524
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0xa2c]
push eax
lea eax, [ebp - 0x414]
push 0x40c25c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0x40850c
push eax
mov dword [ebx + 0x1bed4], eax
call esi
push 0x4084fc
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1bed8], eax
call esi
push 0x4084e8
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1bedc], eax
call esi
push 0x4084d4
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1bee0], eax
call esi
push 0x4084bc
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1bee4], eax
call esi
push 0x4084a4
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1bee8], eax
call esi
push 0x408494
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1beec], eax
call esi
push 0x40847c
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1bef0], eax
call esi
push 0x408468
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1bef4], eax
call esi
push 0x408440
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1bef8], eax
call esi
push 0x408430
push dword [ebx + 0x1bed4]
mov dword [ebx + 0x1befc], eax
call esi
mov dword [ebx + 0x1bf00], eax
xor eax, eax
xor esi, esi
mov word [ebp - 0x61c], si
mov ecx, 0x81
lea edi, [ebp - 0x61a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0xc60]
push eax
push 0x208
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebp - 0xc5c]
push eax
push 0x407c84
push dword [ebx + 4]
mov dword [ebp - 0xc60], esi
mov dword [ebp - 0xc5c], 1
call sub.WINSPOOL.DRV_GetPrinterDataW
test eax, eax
je 0x481008
lea eax, [ebp - 0x61c]
push 0x407c74
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
push 0x407c58
lea eax, [ebx + 0x1bf30]
push eax
lea eax, [ebp - 0xc4c]
push eax
mov dword [ebp - 0xc58], esi
mov dword [ebp - 0xc54], esi
mov dword [ebp - 0xc4c], esi
mov dword [ebp - 0xc44], esi
call fcn.004805f0
test eax, eax
jne 0x481073
lea eax, [ebp - 0xc54]
push eax
lea eax, [ebp - 0xc58]
push eax
push esi
push esi
push 0x407c40
push dword [ebp - 0xc4c]
mov dword [ebp - 0xc54], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0xc4c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0xc58], esi
jne 0x4812af
lea eax, [ebp - 0xc44]
push eax
push esi
push esi
push 2
push dword [ebx + 4]
call sub.WINSPOOL.DRV_GetPrinterW
test eax, eax
jne 0x4812a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4812a1
push dword [ebp - 0xc44]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
cmp edi, esi
mov dword [ebp - 0xc40], edi
je 0x4812a1
lea eax, [ebp - 0xc44]
push eax
push dword [ebp - 0xc44]
push edi
push 2
push dword [ebx + 4]
call sub.WINSPOOL.DRV_GetPrinterW
test eax, eax
je 0x4812a1
push 0x407c24
lea eax, [ebp - 0xc38]
push eax
push dword [ebx + 4]
mov dword [ebp - 0xc38], esi
mov dword [ebp - 0xc3c], 1
call fcn.0048045b
test eax, eax
jne 0x4814b8
mov eax, dword [edi + 0x1c]
movzx edi, word [eax + 0x46]
movzx eax, word [eax + 0x44]
push 4
add edi, eax
lea eax, [ebp - 0xc3c]
push eax
push 4
push esi
push 0x407c40
push dword [ebp - 0xc38]
mov dword [ebp - 0xc48], edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0xc40]
mov esi, dword [eax + 0x1c]
mov ecx, edi
mov eax, ecx
shr ecx, 2
lea edi, [ebx + 0x1cf74]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0xc40]
mov eax, dword [edi + 0x10]
test eax, eax
mov esi, 0x104
je 0x481185
push esi
push eax
lea eax, [ebx + 0x1cd6c]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
mov eax, dword [edi + 0xc]
test eax, eax
je 0x48119e
push esi
push eax
lea eax, [ebx + 0x1cb64]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
mov eax, dword [edi + 4]
test eax, eax
je 0x4811b7
push esi
push eax
lea eax, [ebx + 0x1c95c]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
mov eax, dword [edi]
test eax, eax
je 0x4811cf
push esi
push eax
lea eax, [ebx + 0x1c754]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 4
lea eax, [edi + 0x34]
mov ecx, dword [eax]
push eax
push 4
push 0
push 0x407c0c
push dword [ebp - 0xc38]
mov dword [ebx + 0x1f774], ecx
call esi
mov eax, dword [edi + 4]
test eax, eax
je 0x48121a
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
shl eax, 1
push eax
push dword [edi + 4]
push 1
push 0
push 0x407bf4
push dword [ebp - 0xc38]
call esi
mov eax, dword [edi + 0xc]
test eax, eax
je 0x481240
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
shl eax, 1
push eax
push dword [edi + 0xc]
push 1
push 0
push 0x407be0
push dword [ebp - 0xc38]
call esi
mov eax, dword [edi]
test eax, eax
je 0x481264
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
shl eax, 1
push eax
push dword [edi]
push 1
push 0
push 0x407bc8
push dword [ebp - 0xc38]
call esi
mov eax, dword [edi + 0x10]
test eax, eax
je 0x48128a
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
shl eax, 1
push eax
push dword [edi + 0x10]
push 1
push 0
push 0x407bb0
push dword [ebp - 0xc38]
call esi
push dword [ebp - 0xc48]
push dword [edi + 0x1c]
push 3
push 0
push 0x407ba0
jmp 0x4814a2
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
jmp 0x4815a7
xor eax, eax
mov word [ebp - 0x20c], si
mov ecx, 0x81
lea edi, [ebp - 0x20a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x407c58
lea eax, [ebx + 0x1bf30]
push eax
lea eax, [ebp - 0xc38]
push eax
mov dword [ebp - 0xc38], esi
mov dword [ebp - 0xc48], esi
mov dword [ebp - 0xc3c], esi
mov dword [ebp - 0xc40], esi
call fcn.004805f0
test eax, eax
jne 0x4814b8
lea eax, [ebx + 0x1cd6c]
push 0x405a00
push eax
call dword [sym.imp.msvcrt.dll_wcscmp]
test eax, eax
pop ecx
pop ecx
jne 0x4814b8
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebp - 0xc48]
push eax
push esi
push esi
push 0x407c0c
push dword [ebp - 0xc38]
mov dword [ebp - 0xc40], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov eax, dword [ebp - 0xc48]
push 0x208
mov dword [ebx + 0x1f774], eax
lea eax, [ebp - 0x20c]
push eax
push 0x407bf4
push dword [ebp - 0xc38]
call fcn.004807ae
mov esi, 0x104
push esi
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebx + 0x1c95c]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov ecx, 0x82
lea edi, [ebp - 0x20c]
push 0x208
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x20c]
push eax
push 0x407be0
push dword [ebp - 0xc38]
call fcn.004807ae
push esi
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebx + 0x1cb64]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov ecx, 0x82
lea edi, [ebp - 0x20c]
push 0x208
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x20c]
push eax
push 0x407bc8
push dword [ebp - 0xc38]
call fcn.004807ae
push esi
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebx + 0x1c754]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov ecx, 0x82
lea edi, [ebp - 0x20c]
push 0x208
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x20c]
push eax
push 0x407bb0
push dword [ebp - 0xc38]
call fcn.004807ae
push esi
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebx + 0x1cd6c]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x20c]
rep stosd dword es:[edi], eax
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0xc3c]
push eax
xor eax, eax
push eax
push eax
push eax
mov edi, 0x407ba0
push edi
push dword [ebp - 0xc38]
call esi
mov eax, dword [ebp - 0xc3c]
mov dword [ebp - 0xc40], eax
lea eax, [ebp - 0xc40]
push eax
lea eax, [ebx + 0x1cf74]
push eax
push 0
push 0
push edi
push dword [ebp - 0xc38]
call esi
push dword [ebp - 0xc38]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor esi, esi
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebx + 0x1c95c]
push eax
lea eax, [ebx + 0x1c340]
push 0x407b90
push eax
call dword [sym.imp.msvcrt.dll_swprintf]
add esp, 0x10
xor eax, eax
mov ecx, 0x82
lea edi, [ebp - 0xc34]
rep stosd dword es:[edi], eax
push 0x405e8c
lea eax, [ebx + 0x1c138]
push eax
lea eax, [ebx + 0x1bf30]
push eax
push dword [ebp - 0xc50]
mov dword [ebp - 0xc3c], ebx
call fcn.00480395
mov edi, 0x4126d4
push edi
lea eax, [ebx + 0x1bf30]
push eax
lea eax, [ebx + 0x1c138]
push eax
lea eax, [ebp - 0xc34]
push 0x40c25c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
push edi
push ebx
call fcn.0048a576
xor edi, edi
inc edi
cmp eax, edi
jne 0x481564
lea eax, [ebp - 0xc34]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, esi
mov dword [ebx + 0xb1e0], eax
je 0x481570
mov dword [ebx + 0x1f7a0], edi
jmp 0x481570
mov dword [ebx + 0xb1e0], esi
mov dword [ebx + 0x1f7a0], esi
push 0x30
push ebx
mov dword [ebx + 0xb1e4], esi
call fcn.004a5597
cmp eax, edi
jne 0x48158c
push esi
push dword [ebp + 0xc]
push ebx
call fcn.004994bb
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x1bf2c], esi
mov dword [ebx + 0x1f794], esi
mov dword [ebx + 0x1f7a4], eax
mov eax, dword [ebp - 0xc3c]
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.004a9585
leave
ret 0xc