Function at 0x401409
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov esi, esp
mov eax, 0x14
call fcn.00408310
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, 8
mov dword [esi + 0x7c], eax
mov eax, ecx
call fcn.00408310
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
sub esp, 0x10
mov ecx, esp
lea edx, [esi + 0x88]
mov dword [ecx + 0xc], edx
mov dword [ecx + 8], 0x48e
mov dword [ecx + 4], 0x48e
mov dword [ecx], 0xd5c8c3
mov ecx, dword [sym.imp.GDI32.dll_SetBrushOrgEx]
mov dword [esi + 0x78], eax
call ecx
xor ecx, ecx
lea edx, [esi + 0x80]
mov dword [esi + 0x74], eax
mov dword [esi + 0x70], edx
mov dword [esi + 0x6c], ecx
jmp 0x4014e3
mov eax, dword [sym.imp.USER32.dll_GetOpenClipboardWindow]
call eax
mov ecx, dword [esi + 0x68]
add ecx, 1
cmp ecx, 0xcd
mov dword [esi + 0x64], eax
mov dword [esi + 0x6c], ecx
je 0x401746
jmp 0x4014e3
mov eax, dword [esi + 0x60]
mov ecx, 0xaaaaaaab
mov dword [esi + 0x5c], eax
mul ecx
shr edx, 3
imul eax, edx, 0xc
mov ecx, dword [esi + 0x5c]
sub ecx, eax
mov eax, ecx
sub eax, 5
mov dword [esi + 0x58], ecx
mov dword [esi + 0x54], eax
je 0x40157d
jmp 0x4014cf
mov eax, dword [esi + 0x58]
sub eax, 9
mov dword [esi + 0x50], eax
je 0x4015bb
jmp 0x4015d0
mov eax, dword [esi + 0x6c]
sub esp, 8
mov ecx, esp
mov dword [ecx + 4], 0x2ce
mov dword [ecx], 0xd32d9e
mov ecx, dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov dword [esi + 0x68], eax
call ecx
sub esp, 8
mov ecx, esp
mov dword [ecx + 4], 0x590
mov dword [ecx], 0x2346bd
mov ecx, dword [sym.imp.USER32.dll_ActivateKeyboardLayout]
mov dword [esi + 0x4c], eax
call ecx
sub esp, 4
mov ecx, esp
mov dword [ecx], str.aClandgreat
mov ecx, dword [sym.imp.GDI32.dll_FlattenPath]
mov dword [esi + 0x48], eax
call ecx
sub esp, 8
mov ecx, esp
mov dword [ecx + 4], 0x4b
mov dword [ecx], 0xaba0ae
mov ecx, dword [sym.imp.USER32.dll_UnregisterHotKey]
mov dword [esi + 0x44], eax
call ecx
sub esp, 8
mov ecx, esp
mov dword [ecx + 4], 0xda7f37
mov dword [ecx], 0x5d0ea6
mov ecx, dword [sym.imp.GDI32.dll_PlayMetaFile]
mov dword [esi + 0x40], eax
call ecx
xor ecx, ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x60], ecx
jmp 0x4014a4
mov dword [esi + 0x84], 0
mov dword [esi + 0x80], 0
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0x70]
mov dword [eax], ecx
mov eax, dword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call eax
sub esp, 4
mov ecx, esp
mov dword [ecx], 0x29ab50
mov ecx, dword [sym.imp.USER32.dll_DrawMenuBar]
mov dword [esi + 0x38], eax
call ecx
mov dword [esi + 0x34], eax
sub esp, 4
mov eax, esp
mov dword [eax], 0x66c52d
mov eax, dword [sym.imp.GDI32.dll_GetBkMode]
call eax
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x5c]
add eax, 1
cmp eax, 0x163
mov dword [esi + 0x60], eax
jne 0x4014a4
sub esp, 0x18
mov eax, esp
mov dword [eax + 0x14], 0x943
mov dword [eax + 0x10], 0x481
mov dword [eax + 0xc], 0x588
mov dword [eax + 8], 0x6a1
mov dword [eax + 4], 0x6a1
mov dword [eax], 0xc14066
mov eax, dword [sym.imp.KERNEL32.dll_SetTapePosition]
call eax
mov ecx, dword [esi + 0x68]
sub ecx, 0xf
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], ecx
je 0x4016d6
jmp 0x40162f
mov eax, dword [esi + 0x68]
sub eax, 0x47
mov dword [esi + 0x24], eax
jne 0x401480
jmp 0x401640
sub esp, 0x10
mov eax, esp
mov dword [eax + 0xc], 0x41a58e
mov dword [eax + 8], 0xb84
mov dword [eax + 4], 0xb84
mov dword [eax], 0x9758c5
mov eax, dword [sym.imp.GDI32.dll_DrawEscape]
call eax
xor ecx, ecx
mov edx, 0x14
sub esp, 0xc
mov edi, dword [esi + 0x7c]
mov dword [esp], edi
mov dword [esp + 4], 0
mov dword [esp + 8], 0x14
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], edx
call fcn.00408340
add esp, 0xc
sub esp, 0xc
mov eax, esp
mov ecx, dword [esi + 0x7c]
mov dword [eax + 8], ecx
mov dword [eax + 4], 0xa02
mov dword [eax], 0x1d553
mov eax, dword [sym.imp.ADVAPI32.dll_SetKernelObjectSecurity]
call eax
mov dword [esi + 0x14], eax
sub esp, 8
mov eax, esp
mov dword [eax + 4], 0xc03
mov dword [eax], 0xd9b71a
mov eax, dword [sym.imp.GDI32.dll_SetROP2]
call eax
mov dword [esi + 0x10], eax
sub esp, 8
mov eax, esp
mov dword [eax + 4], 0xbc0
mov dword [eax], 0x6f82a0
mov eax, dword [sym.imp.USER32.dll_GetClassWord]
call eax
sub esp, 0x10
mov ecx, esp
mov edx, dword [esi + 0x78]
mov dword [ecx + 0xc], edx
mov dword [ecx + 8], 0xd24
mov dword [ecx + 4], 0xfa4
mov dword [ecx], 0x5c60e4
mov ecx, dword [sym.imp.GDI32.dll_MoveToEx]
mov word [esi + 0xe], ax
call ecx
sub esp, 0xc
mov ecx, esp
mov dword [ecx + 8], 0x581
mov dword [ecx + 4], 0xa58b0d
mov dword [ecx], 0xa3c030
mov ecx, dword [sym.imp.GDI32.dll_GetRandomRgn]
mov dword [esi + 8], eax
call ecx
mov dword [esi + 4], eax
jmp 0x401480
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret