Function at 0x40d8fc
Capabilities:
Contain obfuscated stackstrings
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x422228
push 0x420750
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30c
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x174], esi
push 0x20
push esi
lea eax, [ebp - 0x16c]
push eax
call sub.MSVCRT.dll_memset
mov ebx, 0x104
push ebx
push esi
lea eax, [ebp - 0x14c]
push eax
call sub.MSVCRT.dll_memset
push ebx
push esi
lea eax, [ebp - 0x278]
push eax
call sub.MSVCRT.dll_memset
add esp, 0x24
mov byte [ebp - 0x24], 0x6c
mov byte [ebp - 0x23], 0x73
mov byte [ebp - 0x22], 0x74
mov byte [ebp - 0x21], 0x72
mov byte [ebp - 0x20], 0x63
mov byte [ebp - 0x1f], 0x61
mov byte [ebp - 0x1e], 0x74
mov byte [ebp - 0x1d], 0x41
and byte [ebp - 0x1c], 0
lea eax, [ebp - 0x24]
push eax
push str.KERNEL32.dll
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
call edi
push eax
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call esi
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x48], 0x77
mov byte [ebp - 0x47], 0x73
mov byte [ebp - 0x46], 0x70
mov byte [ebp - 0x45], 0x72
mov byte [ebp - 0x44], 0x69
mov byte [ebp - 0x43], 0x6e
mov byte [ebp - 0x42], 0x74
mov byte [ebp - 0x41], 0x66
mov byte [ebp - 0x40], 0x41
and byte [ebp - 0x3f], 0
lea eax, [ebp - 0x48]
push eax
push str.USER32.dll
call edi
push eax
call esi
mov dword [ebp - 0x3c], eax
and dword [ebp - 4], 0
mov byte [ebp - 0x2b4], 0x52
mov byte [ebp - 0x2b3], 0x65
mov byte [ebp - 0x2b2], 0x67
mov byte [ebp - 0x2b1], 0x4f
mov byte [ebp - 0x2b0], 0x70
mov byte [ebp - 0x2af], 0x65
mov byte [ebp - 0x2ae], 0x6e
mov byte [ebp - 0x2ad], 0x4b
mov byte [ebp - 0x2ac], 0x65
mov byte [ebp - 0x2ab], 0x79
mov byte [ebp - 0x2aa], 0x45
mov byte [ebp - 0x2a9], 0x78
mov byte [ebp - 0x2a8], 0x41
and byte [ebp - 0x2a7], 0
lea eax, [ebp - 0x2b4]
push eax
push str.ADVAPI32.dll
call edi
push eax
call esi
mov dword [ebp - 0x2b8], eax
mov byte [ebp - 0x2a4], 0x52
mov byte [ebp - 0x2a3], 0x65
mov byte [ebp - 0x2a2], 0x67
mov byte [ebp - 0x2a1], 0x51
mov byte [ebp - 0x2a0], 0x75
mov byte [ebp - 0x29f], 0x65
mov byte [ebp - 0x29e], 0x72
mov byte [ebp - 0x29d], 0x79
mov byte [ebp - 0x29c], 0x56
mov byte [ebp - 0x29b], 0x61
mov byte [ebp - 0x29a], 0x6c
mov byte [ebp - 0x299], 0x75
mov byte [ebp - 0x298], 0x65
mov byte [ebp - 0x297], 0x45
mov byte [ebp - 0x296], 0x78
mov byte [ebp - 0x295], 0x41
and byte [ebp - 0x294], 0
lea eax, [ebp - 0x2a4]
push eax
push str.ADVAPI32.dll
call edi
push eax
call esi
mov dword [ebp - 0x2bc], eax
mov byte [ebp - 0x290], 0x52
mov byte [ebp - 0x28f], 0x65
mov byte [ebp - 0x28e], 0x67
mov byte [ebp - 0x28d], 0x45
mov byte [ebp - 0x28c], 0x6e
mov byte [ebp - 0x28b], 0x75
mov byte [ebp - 0x28a], 0x6d
mov byte [ebp - 0x289], 0x4b
mov byte [ebp - 0x288], 0x65
mov byte [ebp - 0x287], 0x79
mov byte [ebp - 0x286], 0x45
mov byte [ebp - 0x285], 0x78
mov byte [ebp - 0x284], 0x41
and byte [ebp - 0x283], 0
lea eax, [ebp - 0x290]
push eax
push str.ADVAPI32.dll
call edi
push eax
call esi
mov dword [ebp - 0x280], eax
lea eax, [ebp - 0x27c]
push eax
push 0x20019
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [ebp - 0x2b8]
test eax, eax
je 0x40db85
or dword [ebp - 0x30], 0xffffffff
jmp 0x40e0b0
mov eax, dword [ebp + 0x24]
xor ecx, ecx
sub eax, ecx
je 0x40df57
dec eax
je 0x40dede
dec eax
je 0x40dba2
dec eax
jmp 0x40e067
push 0x20
push ecx
lea eax, [ebp - 0x16c]
push eax
call sub.MSVCRT.dll_memset
push ebx
push 0
lea eax, [ebp - 0x14c]
push eax
call sub.MSVCRT.dll_memset
push ebx
push 0
lea eax, [ebp - 0x278]
push eax
call sub.MSVCRT.dll_memset
add esp, 0x24
mov dword [ebp - 0x2c], 0x20
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0x30c], 0x25
mov byte [ebp - 0x30b], 0x2d
mov byte [ebp - 0x30a], 0x32
mov byte [ebp - 0x309], 0x34
mov byte [ebp - 0x308], 0x73
mov byte [ebp - 0x307], 0x20
mov byte [ebp - 0x306], 0x25
mov byte [ebp - 0x305], 0x2d
mov byte [ebp - 0x304], 0x31
mov byte [ebp - 0x303], 0x35
mov byte [ebp - 0x302], 0x73
mov byte [ebp - 0x301], 0x20
mov byte [ebp - 0x300], 0x25
mov byte [ebp - 0x2ff], 0x73
mov byte [ebp - 0x2fe], 0x20
mov byte [ebp - 0x2fd], 0xd
mov byte [ebp - 0x2fc], 0xa
and byte [ebp - 0x2fb], 0
mov byte [ebp - 0x2d4], 0x25
mov byte [ebp - 0x2d3], 0x2d
mov byte [ebp - 0x2d2], 0x32
mov byte [ebp - 0x2d1], 0x34
mov byte [ebp - 0x2d0], 0x73
mov byte [ebp - 0x2cf], 0x20
mov byte [ebp - 0x2ce], 0x25
mov byte [ebp - 0x2cd], 0x2d
mov byte [ebp - 0x2cc], 0x31
mov byte [ebp - 0x2cb], 0x35
mov byte [ebp - 0x2ca], 0x73
mov byte [ebp - 0x2c9], 0x20
mov byte [ebp - 0x2c8], 0x30
mov byte [ebp - 0x2c7], 0x78
mov byte [ebp - 0x2c6], 0x25
mov byte [ebp - 0x2c5], 0x78
mov byte [ebp - 0x2c4], 0x28
mov byte [ebp - 0x2c3], 0x25
mov byte [ebp - 0x2c2], 0x64
mov byte [ebp - 0x2c1], 0x29
mov byte [ebp - 0x2c0], 0x20
mov byte [ebp - 0x2bf], 0xd
mov byte [ebp - 0x2be], 0xa
and byte [ebp - 0x2bd], 0
mov byte [ebp - 0x2e4], 0x25
mov byte [ebp - 0x2e3], 0x2d
mov byte [ebp - 0x2e2], 0x32
mov byte [ebp - 0x2e1], 0x34
mov byte [ebp - 0x2e0], 0x73
mov byte [ebp - 0x2df], 0x20
mov byte [ebp - 0x2de], 0x25
mov byte [ebp - 0x2dd], 0x2d
mov byte [ebp - 0x2dc], 0x31
mov byte [ebp - 0x2db], 0x35
mov byte [ebp - 0x2da], 0x73
mov byte [ebp - 0x2d9], 0x20
mov byte [ebp - 0x2d8], 0xd
mov byte [ebp - 0x2d7], 0xa
and byte [ebp - 0x2d6], 0
mov byte [ebp - 0x2f8], 0x52
mov byte [ebp - 0x2f7], 0x65
mov byte [ebp - 0x2f6], 0x67
mov byte [ebp - 0x2f5], 0x45
mov byte [ebp - 0x2f4], 0x6e
mov byte [ebp - 0x2f3], 0x75
mov byte [ebp - 0x2f2], 0x6d
mov byte [ebp - 0x2f1], 0x56
mov byte [ebp - 0x2f0], 0x61
mov byte [ebp - 0x2ef], 0x6c
mov byte [ebp - 0x2ee], 0x75
mov byte [ebp - 0x2ed], 0x65
mov byte [ebp - 0x2ec], 0x41
and byte [ebp - 0x2eb], 0
lea eax, [ebp - 0x2f8]
push eax
push str.ADVAPI32.dll
call edi
push eax
call esi
mov dword [ebp - 0x2e8], eax
mov ecx, dword [ebp - 0x174]
inc dword [ebp - 0x174]
lea edx, [ebp - 0x28]
push edx
lea edx, [ebp - 0x14c]
push edx
lea edx, [ebp + 0x14]
push edx
push 0
lea edx, [ebp - 0x2c]
push edx
lea edx, [ebp - 0x16c]
push edx
push ecx
push dword [ebp - 0x27c]
call eax
test eax, eax
jne 0x40e0b0
mov eax, dword [ebp + 0x14]
dec eax
je 0x40de9c
dec eax
je 0x40de8e
dec eax
je 0x40de6c
dec eax
je 0x40de3c
sub eax, 3
jne 0x40dec3
push str.REG_MULTI_SZ
jmp 0x40de71
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x14c]
push eax
push str.REG_DWORD
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x2d4]
push eax
lea eax, [ebp - 0x278]
push eax
call dword [ebp - 0x3c]
add esp, 0x18
jmp 0x40dec3
push str.REG_BINARY
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x2e4]
push eax
lea eax, [ebp - 0x278]
push eax
call dword [ebp - 0x3c]
add esp, 0x10
jmp 0x40dec3
lea eax, [ebp - 0x14c]
push eax
push str.REG_EXPAND_SZ
jmp 0x40dea8
lea eax, [ebp - 0x14c]
push eax
push str.REG_SZ
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x278]
push eax
call dword [ebp - 0x3c]
add esp, 0x14
lea eax, [ebp - 0x278]
push eax
push dword [ebp + 0x18]
call dword [ebp - 0x34]
mov dword [ebp - 0x30], 1
xor ecx, ecx
jmp 0x40dba2
push ebx
push ecx
lea eax, [ebp - 0x14c]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebp - 0x174]
inc dword [ebp - 0x174]
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14c]
push eax
push ecx
push dword [ebp - 0x27c]
call dword [ebp - 0x280]
test eax, eax
jne 0x40e0b0
lea eax, [ebp - 0x14c]
push eax
push str.__s__r_n
lea eax, [ebp - 0x278]
push eax
call dword [ebp - 0x3c]
lea eax, [ebp - 0x278]
push eax
push dword [ebp + 0x18]
call sub.MSVCRT.dll_strcat
add esp, 0x14
mov dword [ebp - 0x30], 1
xor ecx, ecx
jmp 0x40dede
mov edx, dword [ebp + 0x14]
cmp edx, ecx
jbe 0x40e0b0
cmp edx, 2
jbe 0x40e06b
cmp edx, 3
je 0x40e044
push 4
pop eax
cmp edx, eax
je 0x40e00b
cmp edx, 7
jne 0x40e0b0
mov dword [ebp - 0x28], ebx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp + 0x14]
push eax
push ecx
push dword [ebp + 0x10]
push dword [ebp - 0x27c]
call dword [ebp - 0x2bc]
test eax, eax
jne 0x40e0b0
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x38], eax
cmp byte [eax], 0
je 0x40dff5
push ebx
push eax
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.MSVCRT.dll_strncat]
push ebx
push 0x42655c
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.MSVCRT.dll_strncat]
push 0
push dword [ebp - 0x38]
call fcn.0040d873
add esp, 0x20
inc eax
mov dword [ebp - 0x38], eax
jmp 0x40dfbb
lea eax, [ebp - 0x278]
push eax
push dword [ebp + 0x18]
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
jmp 0x40e0a9
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp + 0x14]
push eax
push ecx
push dword [ebp + 0x10]
push dword [ebp - 0x27c]
call dword [ebp - 0x2bc]
test eax, eax
jne 0x40e0b0
push dword [ebp - 0x170]
push 0x426464
push dword [ebp + 0x18]
call dword [ebp - 0x3c]
jmp 0x40e0a6
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 0x1c]
lea eax, [ebp + 0x14]
push eax
push ecx
push dword [ebp + 0x10]
push dword [ebp - 0x27c]
call dword [ebp - 0x2bc]
test eax, eax
jne 0x40e0b0
jmp 0x40e0a9
mov dword [ebp - 0x28], ebx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp + 0x14]
push eax
push ecx
push dword [ebp + 0x10]
push dword [ebp - 0x27c]
call dword [ebp - 0x2bc]
test eax, eax
jne 0x40e0b0
lea eax, [ebp - 0x14c]
push eax
call fcn.0040d8d2
push eax
push dword [ebp + 0x18]
call sub.MSVCRT.dll_strcpy
add esp, 0xc
mov dword [ebp - 0x30], 1
or dword [ebp - 4], 0xffffffff
call fcn.0040e0d7
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret