Function at 0x4789d0
Capabilities:
Contain obfuscated stackstrings
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ab5bb
mov eax, dword fs:[0]
push eax
sub esp, 0x540
mov eax, dword [0x4de880]
xor eax, ebp
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x4bc], ecx
mov dword [ebp - 0x4b8], 0
mov dword [ebp - 0x2c8], 0
mov dword [ebp - 0x1a8], 0
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp - 0x2c4]
call fcn.00403fb0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1a8]
push ecx
lea ecx, [ebp - 0x2bc]
call fcn.00403fb0
mov byte [ebp - 4], 1
mov dword [ebp - 0x38], 0x105
mov dword [ebp - 0x2c0], 0x105
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x3c], 0
lea edx, [ebp - 0x3c]
push edx
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x78]
push ecx
mov ecx, dword [ebp - 0x4bc]
call fcn.00475290
mov byte [ebp - 4], 2
mov byte [ebp - 0xd], 0
lea ecx, [ebp - 0x5c]
call fcn.00404240
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x34]
call fcn.00404240
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x94]
call fcn.00404240
mov byte [ebp - 4], 5
mov byte [ebp - 0x3d], 0
lea edx, [ebp - 0x2c8]
push edx
push 0xf003f
push 0
mov ecx, dword [ebp + 0x10]
call fcn.00401df0
push eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x479340
mov byte [ebp - 0xd], 0
mov ecx, dword [ebp - 0x4bc]
call fcn.00474c80
movzx ecx, al
test ecx, ecx
je 0x478b66
mov byte [ebp - 0x2d1], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x94]
call fcn.00401e40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x34]
call fcn.00401e40
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x5c]
call fcn.00401e40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x78]
call fcn.00401e40
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2bc]
call fcn.00403fe0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c4]
call fcn.00403fe0
mov al, byte [ebp - 0x2d1]
jmp 0x4793a3
lea edx, [ebp - 0x2c0]
push edx
lea eax, [ebp - 0x2b4]
push eax
lea ecx, [ebp - 0x14]
push ecx
push 0
lea edx, [ebp - 0x38]
push edx
lea eax, [ebp - 0x1a4]
push eax
mov ecx, dword [ebp - 0x2b8]
push ecx
mov edx, dword [ebp - 0x2c8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov dword [ebp - 0x98], eax
push 0
push 0x4ba554
mov ecx, dword [ebp + 0x14]
call fcn.0040db10
cmp eax, 0xffffffff
je 0x478bd6
push 0
push 0x4ba558
mov ecx, dword [ebp + 0x14]
call fcn.0040db10
cmp eax, 0xffffffff
je 0x478bd6
push 0
push 0x4ba55c
mov ecx, dword [ebp + 0x14]
call fcn.0040db10
cmp dword [ebp - 0x98], 0
jne 0x478beb
cmp dword [ebp - 0x98], 0x103
jne 0x478bf0
jmp 0x479340
movzx eax, byte [ebp - 0x3d]
test eax, eax
je 0x478cca
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x2f0]
push edx
mov ecx, dword [ebp - 0x4bc]
call fcn.00475520
mov dword [ebp - 0x4c0], eax
mov eax, dword [ebp - 0x4c0]
mov dword [ebp - 0x4c4], eax
mov byte [ebp - 4], 6
push 0x4ba560
mov ecx, dword [ebp - 0x4c4]
push ecx
lea edx, [ebp - 0x30c]
push edx
call fcn.00405970
add esp, 0xc
mov dword [ebp - 0x4c8], eax
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4cc], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x4cc]
push edx
lea eax, [ebp - 0x328]
push eax
call fcn.0040b8f0
add esp, 0xc
mov dword [ebp - 0x4d0], eax
mov ecx, dword [ebp - 0x4d0]
mov dword [ebp - 0x4d4], ecx
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x4d4]
push edx
lea ecx, [ebp - 0x5c]
call fcn.004061d0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x328]
call fcn.00401e40
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x30c]
call fcn.00401e40
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2f0]
call fcn.00401e40
jmp 0x478e6d
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x344]
push ecx
mov ecx, dword [ebp - 0x4bc]
call fcn.00475520
mov dword [ebp - 0x4d8], eax
mov edx, dword [ebp - 0x4d8]
mov dword [ebp - 0x4dc], edx
mov byte [ebp - 4], 9
push 0x4ba568
mov eax, dword [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x360]
push ecx
call fcn.00405970
add esp, 0xc
mov dword [ebp - 0x4e0], eax
mov edx, dword [ebp - 0x4e0]
mov dword [ebp - 0x4e4], edx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x4e4]
push ecx
lea edx, [ebp - 0x37c]
push edx
call fcn.0040b8f0
add esp, 0xc
mov dword [ebp - 0x4e8], eax
mov eax, dword [ebp - 0x4e8]
mov dword [ebp - 0x4ec], eax
mov byte [ebp - 4], 0xb
push 0x4ba564
mov ecx, dword [ebp - 0x4ec]
push ecx
lea edx, [ebp - 0x398]
push edx
call fcn.00405970
add esp, 0xc
mov dword [ebp - 0x4f0], eax
mov eax, dword [ebp - 0x4f0]
mov dword [ebp - 0x4f4], eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x1a4]
push ecx
mov edx, dword [ebp - 0x4f4]
push edx
lea eax, [ebp - 0x3b4]
push eax
call fcn.00405970
add esp, 0xc
mov dword [ebp - 0x4f8], eax
mov ecx, dword [ebp - 0x4f8]
mov dword [ebp - 0x4fc], ecx
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x4fc]
push edx
lea ecx, [ebp - 0x5c]
call fcn.004061d0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x3b4]
call fcn.00401e40
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x398]
call fcn.00401e40
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x37c]
call fcn.00401e40
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x360]
call fcn.00401e40
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x344]
call fcn.00401e40
mov ecx, dword [ebp + 0x1c]
call fcn.004018e0
test eax, eax
je 0x478e6d
mov eax, dword [ebp + 0x1c]
push eax
push 0x4ba56c
lea ecx, [ebp - 0x3d0]
push ecx
call fcn.00406a90
add esp, 0xc
mov dword [ebp - 0x500], eax
mov edx, dword [ebp - 0x500]
mov dword [ebp - 0x504], edx
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x504]
push eax
lea ecx, [ebp - 0x5c]
call fcn.00406b20
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x3d0]
call fcn.00401e40
push 0
push 0x4ba570
mov ecx, dword [ebp + 0x14]
call fcn.0040db10
mov dword [ebp - 0x2cc], eax
cmp dword [ebp - 0x2cc], 0xffffffff
je 0x479078
mov ecx, dword [ebp - 0x2cc]
push ecx
push 0
lea edx, [ebp - 0x3ec]
push edx
mov ecx, dword [ebp + 0x14]
call fcn.0040dbc0
mov dword [ebp - 0x508], eax
mov eax, dword [ebp - 0x508]
mov dword [ebp - 0x50c], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x50c]
push ecx
lea ecx, [ebp - 0x34]
call fcn.004061d0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x3ec]
call fcn.00401e40
push 0xffffffffffffffff
mov edx, dword [ebp - 0x2cc]
add edx, 1
push edx
lea eax, [ebp - 0x408]
push eax
mov ecx, dword [ebp + 0x14]
call fcn.0040dbc0
mov dword [ebp - 0x510], eax
mov ecx, dword [ebp - 0x510]
mov dword [ebp - 0x514], ecx
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x514]
push edx
lea ecx, [ebp - 0x94]
call fcn.004061d0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x408]
call fcn.00401e40
lea eax, [ebp - 0x1a4]
push eax
lea ecx, [ebp - 0x42c]
call fcn.004021a0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x34]
call fcn.00401df0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x410], esp
push eax
call fcn.004021a0
mov dword [ebp - 0x518], eax
lea ecx, [ebp - 0x42c]
push ecx
mov ecx, dword [ebp - 0x4bc]
call fcn.00477b70
mov byte [ebp - 0x519], al
mov dl, byte [ebp - 0x519]
mov byte [ebp - 0x409], dl
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x42c]
call fcn.00401e40
movzx eax, byte [ebp - 0x409]
test eax, eax
je 0x479073
cmp dword [ebp - 0x14], 4
jne 0x478ff9
lea ecx, [ebp - 0x94]
call fcn.00401df0
push eax
call fcn.00440d64
add esp, 4
movsx ecx, byte [ebp - 0x2b4]
cmp eax, ecx
jne 0x478ff7
push 0
lea ecx, [ebp - 0x94]
call fcn.0040c110
movsx edx, byte [eax]
cmp edx, 0x30
jl 0x478ff7
push 0
lea ecx, [ebp - 0x94]
call fcn.0040c110
movsx eax, byte [eax]
cmp eax, 0x39
jg 0x478ff7
mov byte [ebp - 0xd], 1
jmp 0x479073
lea ecx, [ebp - 0x2b4]
push ecx
lea ecx, [ebp - 0x450]
call fcn.004021a0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x94]
call fcn.00401df0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x434], esp
push eax
call fcn.004021a0
mov dword [ebp - 0x520], eax
lea edx, [ebp - 0x450]
push edx
mov ecx, dword [ebp - 0x4bc]
call fcn.00477b70
mov byte [ebp - 0x521], al
mov al, byte [ebp - 0x521]
mov byte [ebp - 0x42d], al
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x450]
call fcn.00401e40
movzx ecx, byte [ebp - 0x42d]
test ecx, ecx
je 0x479073
mov byte [ebp - 0xd], 1
jmp 0x4791b7
movzx edx, byte [ebp - 0x3d]
test edx, edx
je 0x4790f5
mov ecx, dword [ebp + 0x10]
call fcn.00401df0
push eax
lea ecx, [ebp - 0x474]
call fcn.004021a0
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x4b8]
or eax, 1
mov dword [ebp - 0x4b8], eax
mov ecx, dword [ebp + 0x14]
call fcn.00401df0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x458], esp
push eax
call fcn.004021a0
mov dword [ebp - 0x528], eax
lea ecx, [ebp - 0x474]
push ecx
mov ecx, dword [ebp - 0x4bc]
call fcn.00477b70
mov byte [ebp - 0x529], al
movzx edx, byte [ebp - 0x529]
test edx, edx
je 0x4790f5
mov dword [ebp - 0x530], 1
jmp 0x4790ff
mov dword [ebp - 0x530], 0
mov al, byte [ebp - 0x530]
mov byte [ebp - 0x451], al
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x4b8]
and ecx, 1
je 0x47912f
and dword [ebp - 0x4b8], 0xfffffffe
lea ecx, [ebp - 0x474]
call fcn.00401e40
movzx edx, byte [ebp - 0x451]
test edx, edx
je 0x479140
mov byte [ebp - 0xd], 1
jmp 0x4791b7
lea eax, [ebp - 0x1a4]
push eax
lea ecx, [ebp - 0x498]
call fcn.004021a0
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp + 0x14]
call fcn.00401df0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x47c], esp
push eax
call fcn.004021a0
mov dword [ebp - 0x534], eax
lea ecx, [ebp - 0x498]
push ecx
mov ecx, dword [ebp - 0x4bc]
call fcn.00477b70
mov byte [ebp - 0x535], al
mov dl, byte [ebp - 0x535]
mov byte [ebp - 0x475], dl
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x498]
call fcn.00401e40
movzx eax, byte [ebp - 0x475]
test eax, eax
je 0x4791b7
mov byte [ebp - 0xd], 1
movzx ecx, byte [ebp - 0xd]
test ecx, ecx
je 0x479309
lea edx, [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x4bc]
call fcn.00414350
mov ecx, eax
call fcn.004018e0
test eax, eax
jne 0x479309
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x5c]
push ecx
mov ecx, dword [ebp - 0x4bc]
call fcn.00414350
mov ecx, eax
call fcn.004061d0
push 0x8c
call fcn.00422de0
add esp, 4
mov dword [ebp - 0x4a0], eax
cmp dword [ebp - 0x4a0], 0
je 0x47922a
mov ecx, dword [ebp - 0x4a0]
call fcn.004073b0
mov dword [ebp - 0x53c], eax
jmp 0x479234
mov dword [ebp - 0x53c], 0
mov edx, dword [ebp - 0x53c]
mov dword [ebp - 0x49c], edx
mov eax, dword [ebp - 0x49c]
mov dword [ebp - 0x2d0], eax
mov ecx, dword [ebp - 0x2d0]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x4a4], esp
mov edx, dword [ebp + 0xc]
push edx
call fcn.00403690
mov dword [ebp - 0x540], eax
mov eax, dword [ebp - 0x540]
mov dword [ebp - 0x544], eax
mov byte [ebp - 4], 0x15
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x4a8], esp
lea edx, [ebp - 0x5c]
push edx
call fcn.00403690
mov dword [ebp - 0x548], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x4bc]
call fcn.00475840
mov eax, dword [ebp - 0x2d0]
push eax
push 3
mov ecx, dword [ebp - 0x4bc]
mov edx, dword [ecx + 0x18]
push edx
mov eax, dword [ebp - 0x4bc]
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp - 0x2d0]
mov dword [ebp - 0x4b0], edx
mov eax, dword [ebp - 0x4b0]
mov dword [ebp - 0x4ac], eax
cmp dword [ebp - 0x4ac], 0
je 0x4792ff
push 1
mov ecx, dword [ebp - 0x4ac]
call fcn.00407400
mov dword [ebp - 0x54c], eax
jmp 0x479309
mov dword [ebp - 0x54c], 0
movzx ecx, byte [ebp - 0x3d]
test ecx, ecx
je 0x479313
jmp 0x479340
mov edx, dword [ebp - 0x2b8]
add edx, 1
mov dword [ebp - 0x2b8], edx
mov dword [ebp - 0x38], 0x105
mov dword [ebp - 0x2c0], 0x105
mov eax, 1
test eax, eax
jne 0x478aea
mov cl, byte [ebp - 0xd]
mov byte [ebp - 0x4b1], cl
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x94]
call fcn.00401e40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x34]
call fcn.00401e40
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x5c]
call fcn.00401e40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x78]
call fcn.00401e40
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2bc]
call fcn.00403fe0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c4]
call fcn.00403fe0
mov al, byte [ebp - 0x4b1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.0043f9e9
mov esp, ebp
pop ebp
ret 0x18