Function at 0x40d50e
Capabilities:
Accept command line arguments
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x36c
mov eax, dword [0x44a040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xor ecx, ecx
push ebx
mov ebx, ecx
mov byte [ebp - 0x354], cl
push esi
mov dword [ebp - 0x32c], ebx
push edi
mov byte [ebp - 0x34c], cl
mov byte [ebp - 0x338], cl
mov byte [ebp - 0x358], cl
mov byte [ebp - 0x331], cl
mov dword [ebp - 0x33c], ecx
lea ecx, [ebp - 0x33c]
mov dword [ebp - 0x368], eax
mov eax, dword [ebp + 0x10]
push ecx
push eax
mov dword [ebp - 0x340], 0x270f
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor edi, edi
mov esi, eax
cmp dword [ebp - 0x33c], ebx
jle 0x40d78a
mov eax, dword [esi + edi*4]
mov ecx, eax
mov edx, dword [0x44a018]
mov bx, word [ecx]
cmp bx, word [edx]
mov ebx, dword [ebp - 0x32c]
jne 0x40d5d5
cmp word [ecx], 0
je 0x40d5ce
mov bx, word [ecx + 2]
cmp bx, word [edx + 2]
mov word [ebp - 0x32e], bx
mov ebx, dword [ebp - 0x32c]
jne 0x40d5d5
add ecx, 4
add edx, 4
cmp word [ebp - 0x32e], 0
jne 0x40d593
xor edx, edx
xor ecx, ecx
inc edx
jmp 0x40d5dc
sbb ecx, ecx
xor edx, edx
inc edx
or ecx, edx
test ecx, ecx
jne 0x40d5eb
mov byte [ebp - 0x354], dl
jmp 0x40d77d
mov edx, dword [0x44a01c]
mov ecx, eax
mov bx, word [ecx]
cmp bx, word [edx]
mov ebx, dword [ebp - 0x32c]
jne 0x40d635
cmp word [ecx], 0
je 0x40d62e
mov bx, word [ecx + 2]
cmp bx, word [edx + 2]
mov word [ebp - 0x32e], bx
mov ebx, dword [ebp - 0x32c]
jne 0x40d635
add ecx, 4
add edx, 4
cmp word [ebp - 0x32e], 0
jne 0x40d5f3
xor edx, edx
xor ecx, ecx
inc edx
jmp 0x40d63c
sbb ecx, ecx
xor edx, edx
inc edx
or ecx, edx
test ecx, ecx
jne 0x40d64b
mov byte [ebp - 0x34c], dl
jmp 0x40d77d
mov edx, dword [0x44a020]
mov ecx, eax
mov bx, word [ecx]
cmp bx, word [edx]
mov ebx, dword [ebp - 0x32c]
jne 0x40d692
cmp word [ecx], 0
je 0x40d68e
mov bx, word [ecx + 2]
cmp bx, word [edx + 2]
mov word [ebp - 0x32e], bx
mov ebx, dword [ebp - 0x32c]
jne 0x40d692
add ecx, 4
add edx, 4
cmp word [ebp - 0x32e], 0
jne 0x40d653
xor ecx, ecx
jmp 0x40d697
sbb ecx, ecx
or ecx, 1
test ecx, ecx
jne 0x40d6d8
lea eax, [edi + 1]
cmp dword [ebp - 0x33c], eax
jle 0x40d6c9
push dword [esi + edi*4 + 4]
call fcn.0040f844
pop ecx
lea ecx, [eax - 1]
cmp ecx, 0xfffe
ja 0x40d6c9
movzx eax, ax
mov dword [ebp - 0x340], eax
jmp 0x40d77d
mov dword [ebp - 0x340], 0x270f
jmp 0x40d77d
mov edx, 0x401240
mov ecx, eax
mov bx, word [ecx]
cmp bx, word [edx]
mov ebx, dword [ebp - 0x32c]
jne 0x40d721
cmp word [ecx], 0
je 0x40d71a
mov bx, word [ecx + 2]
cmp bx, word [edx + 2]
mov word [ebp - 0x32e], bx
mov ebx, dword [ebp - 0x32c]
jne 0x40d721
add ecx, 4
add edx, 4
cmp word [ebp - 0x32e], 0
jne 0x40d6df
xor edx, edx
xor ecx, ecx
inc edx
jmp 0x40d728
sbb ecx, ecx
xor edx, edx
inc edx
or ecx, edx
test ecx, ecx
jne 0x40d734
mov byte [ebp - 0x331], dl
jmp 0x40d77d
mov ecx, 0x401264
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40d762
test dx, dx
je 0x40d75b
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40d762
add eax, 4
add ecx, 4
test dx, dx
jne 0x40d739
xor edx, edx
xor eax, eax
inc edx
jmp 0x40d769
sbb eax, eax
xor edx, edx
inc edx
or eax, edx
mov ecx, dword [ebp - 0x338]
test eax, eax
movzx ecx, cl
cmove ecx, edx
mov dword [ebp - 0x338], ecx
inc edi
cmp edi, dword [ebp - 0x33c]
jl 0x40d588
and dword [ebp - 0x22c], 0
xor eax, eax
and dword [ebp - 0x25c], eax
and dword [ebp - 0x274], eax
push 7
pop edi
push 0x44
mov dword [ebp - 0x228], edi
mov word [ebp - 0x23c], ax
mov dword [ebp - 0x258], edi
mov word [ebp - 0x26c], ax
mov dword [ebp - 0x270], edi
mov word [ebp - 0x284], ax
call fcn.0040e311
pop ecx
test eax, eax
je 0x40d7de
mov ecx, eax
call fcn.00421693
jmp 0x40d7e0
xor eax, eax
and dword [ebp - 0x348], 0
lea ecx, [ebp - 0x348]
and dword [ebp - 0x344], 0
push eax
call fcn.0040ccb8
test esi, esi
je 0x40d83c
push 0x40128c
lea ecx, [ebp - 0x224]
call fcn.0040cd4c
xor eax, eax
lea ebx, [eax + 1]
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp - 0x224]
push eax
push dword [ebp - 0x33c]
push esi
call fcn.00426741
test al, al
je 0x40d83c
xor eax, eax
inc eax
mov byte [ebp - 0x32c], al
jmp 0x40d846
xor eax, eax
mov byte [ebp - 0x32c], 0
inc eax
test al, bl
je 0x40d85b
push 0
push eax
lea ecx, [ebp - 0x224]
and ebx, 0xfffffffe
call fcn.0040d09c
test esi, esi
je 0x40d89b
push 0x4012a0
lea ecx, [ebp - 0x224]
call fcn.0040cd4c
lea eax, [ebp - 0x284]
or ebx, 2
push eax
lea eax, [ebp - 0x224]
push eax
push dword [ebp - 0x33c]
push esi
call fcn.00426741
test al, al
je 0x40d89b
xor eax, eax
inc eax
mov byte [ebp - 0x32d], al
jmp 0x40d8a5
xor eax, eax
mov byte [ebp - 0x32d], 0
inc eax
test bl, 2
je 0x40d8b8
push 0
push eax
lea ecx, [ebp - 0x224]
call fcn.0040d09c
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x350]
call fcn.00426fde
cmp byte [ebp - 0x338], 0
jne 0x40d8e0
cmp byte [ebp - 0x32d], 0
jne 0x40d8e0
xor al, al
jmp 0x40d8e3
xor eax, eax
inc eax
lea ecx, [ebp - 0x358]
push ecx
lea ecx, [ebp - 0x23c]
push ecx
lea ecx, [ebp - 0x26c]
push ecx
push dword [ebp - 0x32c]
push eax
call fcn.00427070
movzx eax, al
lea ecx, [ebp - 0x350]
push eax
call fcn.00426fec
movzx eax, al
push eax
push ecx
push ecx
mov ecx, esp
push dword [ebp - 0x344]
push dword [ebp - 0x348]
and dword [ecx], 0
and dword [ecx + 4], 0
call fcn.0040d072
call fcn.00426815
xor ecx, ecx
xor eax, eax
mov ebx, ecx
mov dword [ebp - 0x330], ebx
cmp byte [ebp - 0x331], cl
je 0x40da1e
mov esi, 0x401220
mov dword [ebp - 0x2dc], ecx
push esi
mov dword [ebp - 0x328], ecx
mov dword [ebp - 0x310], edi
mov dword [ebp - 0x314], ecx
mov word [ebp - 0x324], ax
mov dword [ebp - 0x2f8], edi
mov dword [ebp - 0x2fc], ecx
mov word [ebp - 0x30c], ax
mov dword [ebp - 0x2e0], edi
mov dword [ebp - 0x2e4], ecx
mov word [ebp - 0x2f4], ax
mov dword [ebp - 0x2dc], ecx
call fcn.0040d4b7
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2f4]
call fcn.0040d2da
push esi
call fcn.0040d4b7
pop ecx
push eax
push esi
lea ecx, [ebp - 0x324]
call fcn.0040d2da
push esi
call fcn.0040d4b7
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30c]
call fcn.0040d2da
lea eax, [ebp - 0x328]
mov dword [ebp - 0x328], 0x80000002
push eax
lea ecx, [ebp - 0x2a8]
call fcn.00427cd6
lea ecx, [ebp - 0x2a8]
call fcn.0042849e
lea ecx, [ebp - 0x2a8]
call fcn.00427d48
lea ecx, [ebp - 0x328]
call fcn.0040cd93
jmp 0x40dd76
mov word [ebp - 0x224], ax
xor eax, eax
push 0x206
mov word [ebp - 0x254], ax
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push ecx
push eax
mov dword [ebp - 0x210], edi
mov dword [ebp - 0x214], ecx
mov dword [ebp - 0x240], edi
mov dword [ebp - 0x244], ecx
call fcn.0040f870
add esp, 0xc
mov dword [ebp - 0x364], 0x208
xor eax, eax
inc eax
mov dword [ebp - 0x36c], eax
lea eax, [ebp - 0x364]
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x36c]
push eax
push 0x4012cc
push 0x4012f4
push 0x80000001
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
je 0x40dada
mov esi, 0x40132c
push esi
call fcn.0040d4b7
pop ecx
push eax
push esi
lea ecx, [ebp - 0x224]
call fcn.0040d2da
mov esi, 0x401354
push esi
call fcn.0040d4b7
pop ecx
push eax
push esi
lea ecx, [ebp - 0x254]
call fcn.0040d2da
jmp 0x40dbca
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
push 0x40132c
mov esi, 0x40121c
lea eax, [ebp - 0x20c]
push esi
push eax
lea ecx, [ebp - 0x29c]
call fcn.0040cd4c
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.0040cc4d
push eax
lea eax, [ebp - 0x2c0]
push eax
call fcn.0040cc4d
push eax
lea ecx, [ebp - 0x224]
call fcn.00424844
xor eax, eax
lea ecx, [ebp - 0x2c0]
xor ebx, ebx
inc eax
push ebx
push eax
call fcn.0040d09c
xor eax, eax
lea ecx, [ebp - 0x2d8]
push ebx
inc eax
push eax
call fcn.0040d09c
xor eax, eax
lea ecx, [ebp - 0x29c]
push ebx
inc eax
push eax
call fcn.0040d09c
push 0x401354
push esi
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.0040cd4c
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.0040cc4d
push eax
lea eax, [ebp - 0x29c]
push eax
call fcn.0040cc4d
push eax
lea ecx, [ebp - 0x254]
call fcn.00424844
xor eax, eax
lea ecx, [ebp - 0x29c]
push ebx
inc eax
push eax
call fcn.0040d09c
xor eax, eax
lea ecx, [ebp - 0x2d8]
push ebx
inc eax
push eax
call fcn.0040d09c
xor eax, eax
lea ecx, [ebp - 0x2c0]
push ebx
inc eax
push eax
call fcn.0040d09c
cmp dword [ebp - 0x240], 8
lea eax, [ebp - 0x254]
cmovae eax, dword [ebp - 0x254]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x40dcdf
call fcn.00426b59
test al, al
jne 0x40dcdf
push dword [0x44a010]
push esi
call ebx
mov edi, eax
test edi, edi
je 0x40dcdf
and dword [ebp - 0x32c], 0
push 4
pop eax
push 0x40137c
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x360], eax
call fcn.0040d4b7
pop ecx
push eax
push 0x40137c
push dword [ebp - 0x22c]
lea ecx, [ebp - 0x23c]
push 0
call fcn.0040d35a
test eax, eax
lea eax, [ebp - 0x360]
push eax
lea eax, [ebp - 0x32c]
setne byte [ebp - 0x338]
push eax
lea eax, [ebp - 0x35c]
push eax
push 0x401390
push 0x4012f4
push 0x80000001
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x40dc9e
movzx eax, byte [ebp - 0x338]
xor ecx, ecx
cmp dword [ebp - 0x32c], ecx
cmova eax, ecx
mov byte [ebp - 0x338], al
cmp dword [ebp - 0x228], 8
lea eax, [ebp - 0x23c]
cmovae eax, dword [ebp - 0x23c]
push eax
push dword [ebp - 0x338]
xor eax, eax
inc eax
push eax
push dword [ebp - 0x34c]
push dword [ebp - 0x340]
push dword [ebp - 0x354]
push 0xa
push 0x65
push 0x4013bc
push 0x4013d4
call edi
cmp dword [ebp - 0x210], 8
lea eax, [ebp - 0x224]
cmovae eax, dword [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x40dd3d
push dword [0x44a00c]
push edi
call ebx
test eax, eax
je 0x40dd36
cmp dword [ebp - 0x228], 8
lea ecx, [ebp - 0x23c]
push dword [ebp - 0x358]
cmovae ecx, dword [ebp - 0x23c]
push ecx
push dword [ebp - 0x368]
call eax
mov dword [ebp - 0x330], eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test esi, esi
je 0x40dd51
push dword [0x44a014]
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor ebx, ebx
lea ecx, [ebp - 0x254]
push 0
inc ebx
push ebx
call fcn.0040d09c
push 0
push ebx
lea ecx, [ebp - 0x224]
call fcn.0040d09c
mov ebx, dword [ebp - 0x330]
cmp dword [ebp - 0x344], 0
mov dword [ebp - 0x350], 0x40123c
je 0x40dd94
mov ecx, dword [ebp - 0x344]
call fcn.0040cf6f
xor eax, eax
lea ecx, [ebp - 0x284]
push 0
inc eax
push eax
call fcn.0040d09c
xor eax, eax
lea ecx, [ebp - 0x26c]
push 0
inc eax
push eax
call fcn.0040d09c
xor eax, eax
lea ecx, [ebp - 0x23c]
push 0
inc eax
push eax
call fcn.0040d09c
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040eb49
mov esp, ebp
pop ebp
ret 0x10