Function at 0x437360
Capabilities:
Create thread
Get common file path
Log keystrokes via application hook

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [0x4ccbf8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp + 0x18]
shr eax, 1
push ebx
mov ebx, dword [ebp + 8]
not eax
push esi
mov esi, dword [ebp + 0xc]
and eax, 1
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xa4], eax
push edi
test ebx, ebx
jne 0x4373ce
push 0x1f40
call fcn.00486927
mov ebx, eax
add esp, 4
mov dword [ebp - 0x9c], ebx
test ebx, ebx
je 0x4373ce
push 0x1f40
push 0
push ebx
call fcn.004811a0
add esp, 0xc
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x4373f3
cmp byte [ecx], 0
je 0x4373f3
lea edi, [ebx + 0x144]
mov edx, edi
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x4373e4
jmp 0x437405
lea edi, [ebx + 0x144]
push edi
push 0x12c
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x437406
mov ax, word [0x4a0f24]
mov word [edi], ax
test esi, esi
je 0x437420
mov dword [ebx + 0x10], esi
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x43742d
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 0x1e10], 0x4b8cb4
test al, 1
jne 0x4387e5
or eax, 0x40000001
mov dword [ebx + 0x1f08], 1
mov dword [ebx + 4], eax
lea eax, [ebp - 0x70]
push eax
mov dword [ebp - 0x70], 8
mov dword [ebp - 0x6c], 0x7ff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.004762a0
test dword [ebx + 4], 0x200
je 0x4374a8
mov eax, dword [0x554610]
test eax, eax
je 0x437491
call eax
neg eax
sbb eax, eax
and eax, 0x100080
or dword [ebx + 4], eax
mov eax, dword [0x554614]
test eax, eax
je 0x4374a8
call eax
neg eax
sbb eax, eax
and eax, 0x800000
or dword [ebx + 4], eax
mov edi, dword [sym.imp.USER32.dll_GetClassInfoA]
lea eax, [ebp - 0x98]
push eax
push 0x8002
push esi
call edi
mov esi, dword [sym.imp.USER32.dll_DefDlgProcA]
lea eax, [ebp - 0x98]
mov ebx, dword [sym.imp.USER32.dll_RegisterClassA]
push eax
mov dword [ebp - 0x74], 0x4a1488
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x84], 0
call ebx
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0xa0]
push 0x8002
push eax
call edi
lea eax, [ebp - 0x98]
mov dword [ebp - 0x74], 0x4a1488
push eax
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x84], 0
call ebx
mov eax, dword [ebp - 0x9c]
xorps xmm0, xmm0
mov edi, dword [sym.imp.USER32.dll_LoadCursorA]
movlpd qword [ebp - 0x88], xmm0
push 0x7f00
movlpd qword [ebp - 0x90], xmm0
movlpd qword [ebp - 0x80], xmm0
movlpd qword [ebp - 0x78], xmm0
mov dword [ebp - 0x98], 0x24080
mov dword [ebp - 0x94], 0x452500
mov eax, dword [eax + 0x10]
push 0
mov dword [ebp - 0x88], eax
call edi
mov esi, dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0xf0ffff
mov dword [ebp - 0x80], eax
call esi
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0x74], str.TruncText
call ebx
mov eax, dword [ebp - 0x9c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x88], xmm0
push 0x7f00
movlpd qword [ebp - 0x90], xmm0
movlpd qword [ebp - 0x80], xmm0
movlpd qword [ebp - 0x78], xmm0
mov dword [ebp - 0x98], 0x24080
mov dword [ebp - 0x94], 0x439f40
mov eax, dword [eax + 0x10]
push 0
mov dword [ebp - 0x88], eax
call edi
push 0xf0ffff
mov dword [ebp - 0x80], eax
call esi
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0x74], str.MenuToolTip
call ebx
mov eax, dword [ebp - 0x9c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x88], xmm0
movlpd qword [ebp - 0x90], xmm0
movlpd qword [ebp - 0x80], xmm0
movlpd qword [ebp - 0x78], xmm0
mov dword [ebp - 0x98], 0x4080
mov dword [ebp - 0x94], 0x456150
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x88], eax
push 0x7f00
push 0
call edi
push 0xe100ff
mov dword [ebp - 0x80], eax
call esi
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0x74], str.DragDrop
call ebx
mov eax, dword [ebp - 0x9c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x88], xmm0
push 0x7f00
movlpd qword [ebp - 0x90], xmm0
movlpd qword [ebp - 0x80], xmm0
movlpd qword [ebp - 0x78], xmm0
mov dword [ebp - 0x98], 0x4080
mov dword [ebp - 0x94], 0x442a20
mov eax, dword [eax + 0x10]
push 0
mov dword [ebp - 0x88], eax
call edi
push 0
mov dword [ebp - 0x80], eax
call esi
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0x74], str.Splitter
call ebx
mov eax, dword [sym.imp.USER32.dll_DefWindowProcA]
xorps xmm0, xmm0
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x9c]
movlpd qword [ebp - 0x88], xmm0
push 0x7f00
movlpd qword [ebp - 0x90], xmm0
movlpd qword [ebp - 0x80], xmm0
movlpd qword [ebp - 0x78], xmm0
mov dword [ebp - 0x98], 0x80
mov eax, dword [eax + 0x10]
push 0
mov dword [ebp - 0x88], eax
call edi
push 0
mov dword [ebp - 0x80], eax
call esi
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0x74], str.SplitterShadow
call ebx
and dword [ebp + 0x18], 1
je 0x437739
push 1
push dword [ebp - 0xb4]
call fcn.00443530
add esp, 8
mov ebx, dword [ebp - 0x9c]
push ebx
call fcn.00443db0
add esp, 4
cmp dword [ebx + 0x1de8], 0
jne 0x43776f
push 0xb8
call fcn.00486927
push 0x400
push eax
mov dword [ebx + 0x1de8], eax
call fcn.0041b220
add esp, 0xc
cmp dword [ebp - 0xa4], 0
je 0x4387e5
or dword [ebx + 4], 4
push 0xfcc
call fcn.00486927
add esp, 4
mov dword [ebx + 0x1f0c], eax
test eax, eax
je 0x4377a7
push 0xfcc
push 0
push eax
call fcn.004811a0
add esp, 0xc
mov dword [ebx + 0x1f28], fcn.00441d20
lea edi, [ebx + 0xd3c]
mov dword [ebx + 0x1f2c], 0x4364d0
xor esi, esi
mov dword [ebx + 0x1f30], 0x43e5f0
mov dword [ebx + 0x1f34], 0x43e890
mov dword [ebx + 0x1f10], 0x486927
mov dword [ebx + 0x1f14], 0x483b6d
mov dword [ebx + 0x1f18], 0x48690c
push str.LSS__cs__d_
push esi
push str.LSS__cs__d_
lea eax, [ebp - 0x68]
push 0x64
push eax
call fcn.0041ff80
push eax
push edi
call fcn.00421990
inc esi
add esp, 0x1c
add edi, 0x18
cmp esi, 5
jl 0x4377f5
xor esi, esi
lea edi, [ebx + 0x1e14]
nop word [eax + eax]
push str.LSS__cs2__d_
push esi
push str.LSS__cs2__d_
lea eax, [ebp - 0x68]
push 0x64
push eax
call fcn.0041ff80
push eax
push edi
call fcn.00421990
inc esi
add esp, 0x1c
add edi, 0x18
cmp esi, 0xa
jl 0x437830
push 0
push dword [ebx + 0x10]
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
push 1
push 1
push 0
push 0
push 0x40000000
push 0x4b1aef
push str.SplitterShadow
push 0x808008c
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 2
push 0x64
push 0
push eax
mov dword [ebx + 0x1e00], eax
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
mov esi, dword [sym.imp.COMCTL32.dll_ImageList_Create]
push 0
push 0x64
push 0x21
push 0x10
push 0x10
call esi
push 0
push 0xa
push 0x11
push 8
push 8
mov dword [ebx + 0xe14], eax
call esi
mov edi, dword [sym.imp.USER32.dll_LoadImageA]
push 0x2000
push 0
push 0
push 0
push str.HeaderBmp
push dword [ebx + 0x14]
mov dword [ebx + 0x1df8], eax
call edi
push 8
mov esi, eax
push 0x20
push esi
push 0
push 0
mov dword [ebp - 0xa4], esi
call fcn.004264d0
add esp, 0x14
push 0xff00ff
push esi
push dword [ebx + 0x1df8]
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test esi, esi
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
je 0x43791e
push dword [ebp - 0xa4]
call esi
push 0
push 0x64
push 0x11
push 0x10
push 0x10
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
push 0x2000
push 0
push 0
push 0
push str.Images8
push dword [ebx + 0x14]
mov dword [ebx + 0x1f38], eax
call edi
push 8
push 0x20
mov edi, eax
push edi
push 0
push 0
call fcn.004264d0
add esp, 0x14
push 0xff00ff
push edi
push dword [ebx + 0x1f38]
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x437975
push edi
call esi
push 0x10
call fcn.00486927
mov esi, eax
add esp, 4
test esi, esi
je 0x4379c2
xorps xmm0, xmm0
push 0xfa4
movups xmmword [esi], xmm0
call fcn.00486927
add esp, 4
mov dword [esi + 0xc], eax
test eax, eax
jne 0x4379ac
push esi
call fcn.0048690c
add esp, 4
xor esi, esi
jmp 0x4379c2
push 0xfa4
push 0
push eax
mov dword [esi], 0x3e9
call fcn.004811a0
add esp, 0xc
cmp dword [ebp + 0x18], 0
mov dword [0x4edf34], esi
je 0x4379ee
call fcn.0046f6b0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0
push 0x438ac0
push 2
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
mov dword [0x554a38], eax
push 0
push 0
push 0
push 0x430ff0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x198
mov dword [ebx + 0xe04], eax
xorps xmm0, xmm0
push 0
push 0x5548a0
movups xmmword [0x554880], xmm0
mov dword [0x554890], 0
call fcn.004811a0
push 0x198
push 0
push 0x5546a0
call fcn.004811a0
add esp, 0x18
call fcn.00437160
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
je 0x437a5c
cmp eax, 1
je 0x437a5c
xor eax, eax
jmp 0x437a61
mov eax, 2
or dword [ebx + 4], eax
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov esi, eax
push 0x68
push esi
call edi
push 0xc
push esi
mov dword [0x4edf40], eax
call edi
mov ebx, dword [sym.imp.USER32.dll_ReleaseDC]
xor ecx, ecx
cmp eax, 0x10
push esi
setne cl
and dword [0x4edf48], ecx
push 0
call ebx
push 0x14
call dword [sym.imp.USER32.dll_GetSysColor]
mov esi, dword [ebp - 0x9c]
push 0x10
mov dword [esi + 0xddc], eax
call dword [sym.imp.USER32.dll_GetSysColor]
push 0xf
mov dword [esi + 0xde0], eax
call dword [sym.imp.USER32.dll_GetSysColor]
mov dword [esi + 0xde4], eax
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xa
call esi
mov ecx, dword [ebp - 0x9c]
push 9
mov dword [ecx + 0xde8], eax
call esi
mov ecx, dword [ebp - 0x9c]
push 2
mov dword [ecx + 0xdec], eax
call esi
mov ecx, dword [ebp - 0x9c]
push 0x14
mov dword [ecx + 0xdf0], eax
call esi
mov ecx, dword [ebp - 0x9c]
push 0x15
mov dword [ecx + 0xdf4], eax
call esi
mov ecx, dword [ebp - 0x9c]
push 3
mov dword [ecx + 0xdf8], eax
call esi
mov ecx, dword [ebp - 0x9c]
push 0
mov dword [ecx + 0xdfc], eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0x26
push esi
call edi
push esi
push 0
mov edi, eax
call ebx
mov ebx, dword [ebp - 0x9c]
shr edi, 8
and edi, 1
mov dword [ebx + 0xdd0], edi
je 0x43865a
mov eax, dword [0x4edf38]
test eax, eax
je 0x437b7c
push eax
call fcn.0048690c
add esp, 4
mov dword [0x4edf38], 0
cmp dword [ebx + 0x4cc], 2
jl 0x437bca
mov eax, dword [0x4edef8]
test eax, eax
je 0x437bca
mov edx, dword [eax]
test edx, edx
je 0x437bca
mov eax, dword [0x4edee0]
test eax, eax
je 0x437ba5
mov ecx, dword [eax + 0x190]
jmp 0x437bab
mov ecx, dword [0x4edee4]
push str.Running_in_palette_mode
push str.Running_in_palette_mode
push eax
push ecx
push 0
push 0x13d
push str.D:MyProjectsProPilotLibLibMain.c
push 0
call edx
add esp, 0x20
push 8
push 0x10
push 0
push str.exitbmp16
push 0x4edf38
call fcn.004264d0
mov esi, dword [sym.imp.USER32.dll_GetSysColor]
add esp, 0x14
push 0x10
call esi
mov edx, eax
movsd xmm5, qword [0x4a1e68]
movzx ecx, dl
movaps xmm0, xmm5
movsd xmm2, qword [0x4a1d98]
movd xmm4, ecx
shr ecx, 0x1f
cvtdq2pd xmm4, xmm4
addsd xmm4, qword [ecx*8 + 0x4a12a0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4a12a0]
mov eax, edx
and edx, 0xff000000
shr eax, 0x10
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a12a0]
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
cvttsd2si ecx, xmm0
movaps xmm0, xmm5
subsd xmm0, xmm3
shl ecx, 8
mulsd xmm0, xmm2
addsd xmm0, xmm3
cvttsd2si eax, xmm0
movaps xmm0, xmm5
subsd xmm0, xmm4
or ecx, eax
shl ecx, 8
mulsd xmm0, xmm2
addsd xmm0, xmm4
cvttsd2si eax, xmm0
or ecx, eax
or ecx, edx
push ecx
call fcn.004267c0
add esp, 4
push 0x14
call esi
mov edx, eax
movsd xmm2, qword [0x4a1d60]
movzx ecx, dl
movd xmm4, ecx
cvtdq2pd xmm4, xmm4
shr ecx, 0x1f
addsd xmm4, qword [ecx*8 + 0x4a12a0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4a12a0]
mov eax, edx
shr eax, 0x10
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a12a0]
movaps xmm0, xmm1
mulsd xmm0, xmm2
subsd xmm1, xmm0
and edx, 0xff000000
movaps xmm0, xmm3
mulsd xmm0, xmm2
cvttsd2si ecx, xmm1
subsd xmm3, xmm0
movaps xmm0, xmm4
mulsd xmm0, xmm2
shl ecx, 8
cvttsd2si eax, xmm3
subsd xmm4, xmm0
or ecx, eax
shl ecx, 8
cvttsd2si eax, xmm4
or ecx, eax
or ecx, edx
push ecx
call fcn.004267c0
add esp, 4
push 0x10
call esi
mov edx, eax
movsd xmm4, qword [0x4a1e68]
movzx ecx, dl
movaps xmm0, xmm4
movsd xmm5, qword [0x4a1d80]
movd xmm3, ecx
shr ecx, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [ecx*8 + 0x4a12a0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
shr eax, 0x1f
cvtdq2pd xmm2, xmm2
addsd xmm2, qword [eax*8 + 0x4a12a0]
mov eax, edx
and edx, 0xff000000
shr eax, 0x10
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a12a0]
subsd xmm0, xmm1
mulsd xmm0, xmm5
addsd xmm0, xmm1
cvttsd2si ecx, xmm0
movaps xmm0, xmm4
subsd xmm0, xmm2
shl ecx, 8
mulsd xmm0, xmm5
addsd xmm0, xmm2
cvttsd2si eax, xmm0
movaps xmm0, xmm4
subsd xmm0, xmm3
or ecx, eax
shl ecx, 8
mulsd xmm0, xmm5
addsd xmm0, xmm3
cvttsd2si eax, xmm0
or ecx, eax
or ecx, edx
push ecx
call fcn.004267c0
add esp, 4
push 0xd
call esi
mov edx, eax
movzx ecx, dl
movd xmm3, ecx
cvtdq2pd xmm3, xmm3
shr ecx, 0x1f
addsd xmm3, qword [ecx*8 + 0x4a12a0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
addsd xmm2, qword [eax*8 + 0x4a12a0]
movsd xmm4, qword [0x4a1e68]
mov eax, edx
movsd xmm5, qword [0x4a1d80]
movaps xmm0, xmm4
shr eax, 0x10
and edx, 0xff000000
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a12a0]
subsd xmm0, xmm1
mulsd xmm0, xmm5
addsd xmm0, xmm1
cvttsd2si ecx, xmm0
movaps xmm0, xmm4
subsd xmm4, xmm3
subsd xmm0, xmm2
shl ecx, 8
mulsd xmm4, xmm5
mulsd xmm0, xmm5
addsd xmm4, xmm3
addsd xmm0, xmm2
cvttsd2si eax, xmm0
or ecx, eax
cvttsd2si eax, xmm4
shl ecx, 8
or ecx, eax
or ecx, edx
push ecx
call fcn.004267c0
push 0xe00000
call fcn.004267c0
add esp, 8
push 0x14
call esi
push 0xf
mov dword [ebp - 0xa4], eax
call esi
push 0x10
mov ebx, eax
call esi
mov edx, dword [ebp - 0xa4]
mov ecx, ebx
movsd xmm3, qword [0x4a1da0]
movsd xmm2, qword [0x4a1e10]
mov dword [ebp - 0xa0], eax
mov eax, edx
sar ecx, 0x10
sar eax, 0x10
movzx esi, cl
mov ecx, ebx
movzx eax, al
sar ecx, 8
movzx edi, cl
movd xmm0, esi
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movzx ebx, bl
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm2
movd xmm4, edi
cvtdq2pd xmm4, xmm4
addsd xmm1, xmm0
movd xmm5, ebx
mulsd xmm4, xmm2
cvtdq2pd xmm5, xmm5
cvttsd2si eax, xmm1
movzx ecx, al
mov eax, edx
or ecx, 0x200
shl ecx, 8
sar eax, 8
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm3
addsd xmm1, xmm4
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
mulsd xmm5, xmm2
movzx eax, dl
shl ecx, 8
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm3
addsd xmm1, xmm5
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
push ecx
call fcn.004267c0
mov ecx, dword [ebp - 0xa0]
mov eax, ecx
movsd xmm3, qword [0x4a1dd8]
movsd xmm2, qword [0x4a1df8]
sar eax, 0x10
movzx eax, al
mov dword [ebp - 0xa4], eax
movd xmm1, esi
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, ecx
cvtdq2pd xmm0, xmm0
sar eax, 8
movzx eax, al
mov dword [ebp - 0xa0], eax
mulsd xmm1, xmm3
movd xmm4, eax
movzx eax, cl
mulsd xmm0, xmm2
mov dword [ebp - 0xac], eax
cvtdq2pd xmm4, xmm4
addsd xmm1, xmm0
movd xmm5, eax
mulsd xmm4, xmm2
cvtdq2pd xmm5, xmm5
cvttsd2si eax, xmm1
movd xmm1, edi
cvtdq2pd xmm1, xmm1
movzx ecx, al
or ecx, 0x200
shl ecx, 8
mulsd xmm5, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm4
cvttsd2si eax, xmm1
movd xmm1, ebx
cvtdq2pd xmm1, xmm1
movzx eax, al
or ecx, eax
shl ecx, 8
mulsd xmm1, xmm3
addsd xmm1, xmm5
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
push ecx
call fcn.004267c0
movd xmm2, dword [ebp - 0xa4]
movsd xmm1, qword [0x4a1d50]
movsd xmm0, qword [0x4a1e20]
cvtdq2pd xmm2, xmm2
movd xmm3, esi
cvtdq2pd xmm3, xmm3
mulsd xmm2, xmm1
mulsd xmm3, xmm0
addsd xmm2, xmm3
movd xmm3, edi
cvtdq2pd xmm3, xmm3
cvttsd2si eax, xmm2
movd xmm2, dword [ebp - 0xa0]
cvtdq2pd xmm2, xmm2
movzx ecx, al
or ecx, 0x200
shl ecx, 8
mulsd xmm3, xmm0
mulsd xmm2, xmm1
addsd xmm2, xmm3
cvttsd2si eax, xmm2
movd xmm2, dword [ebp - 0xac]
cvtdq2pd xmm2, xmm2
movzx eax, al
or ecx, eax
shl ecx, 8
mulsd xmm2, xmm1
movd xmm1, ebx
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
addsd xmm2, xmm1
cvttsd2si eax, xmm2
movzx eax, al
or ecx, eax
push ecx
call fcn.004267c0
mov edi, dword [sym.imp.USER32.dll_GetSysColor]
add esp, 0xc
push 5
call edi
mov edx, eax
movsd xmm2, qword [0x4a1d48]
movzx ecx, dl
movd xmm4, ecx
shr ecx, 0x1f
cvtdq2pd xmm4, xmm4
addsd xmm4, qword [ecx*8 + 0x4a12a0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4a12a0]
mov eax, edx
and edx, 0xff000000
shr eax, 0x10
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a12a0]
movaps xmm0, xmm1
mulsd xmm0, xmm2
subsd xmm1, xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm2
cvttsd2si ecx, xmm1
subsd xmm3, xmm0
movaps xmm0, xmm4
mulsd xmm0, xmm2
shl ecx, 8
cvttsd2si eax, xmm3
subsd xmm4, xmm0
or ecx, eax
shl ecx, 8
cvttsd2si eax, xmm4
or ecx, eax
or ecx, edx
push ecx
call fcn.004267c0
add esp, 4
push 5
call edi
mov edx, eax
movzx ecx, dl
movd xmm4, ecx
cvtdq2pd xmm4, xmm4
shr ecx, 0x1f
addsd xmm4, qword [ecx*8 + 0x4a12a0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
cvtdq2pd xmm3, xmm3
shr eax, 0x1f
addsd xmm3, qword [eax*8 + 0x4a12a0]
mov eax, edx
shr eax, 0x10
movzx eax, al
movd xmm1, eax
movsd xmm2, qword [0x4a1d58]
and edx, 0xff000000
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a12a0]
movaps xmm0, xmm1
mulsd xmm0, xmm2
subsd xmm1, xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm2
cvttsd2si ecx, xmm1
subsd xmm3, xmm0
movaps xmm0, xmm4
mulsd xmm0, xmm2
shl ecx, 8
cvttsd2si eax, xmm3
subsd xmm4, xmm0
or ecx, eax
shl ecx, 8
cvttsd2si eax, xmm4
or ecx, eax
or ecx, edx
push ecx
call fcn.004267c0
add esp, 4
push 5
call edi
mov edx, eax
movsd xmm4, qword [0x4a1d80]
movzx ecx, dl
movd xmm3, ecx
shr ecx, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [ecx*8 + 0x4a12a0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
shr eax, 0x1f
cvtdq2pd xmm2, xmm2
addsd xmm2, qword [eax*8 + 0x4a12a0]
mov eax, edx
and edx, 0xff000000
shr eax, 0x10
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a12a0]
movaps xmm0, xmm1
mulsd xmm0, xmm4
subsd xmm1, xmm0
movaps xmm0, xmm2
mulsd xmm0, xmm4
cvttsd2si ecx, xmm1
subsd xmm2, xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm4
shl ecx, 8
cvttsd2si eax, xmm2
subsd xmm3, xmm0
or ecx, eax
shl ecx, 8
cvttsd2si eax, xmm3
or ecx, eax
or ecx, edx
push ecx
call fcn.004267c0
add esp, 4
push 5
call edi
mov edx, eax
movzx ecx, dl
movd xmm4, ecx
cvtdq2pd xmm4, xmm4
shr ecx, 0x1f
addsd xmm4, qword [ecx*8 + 0x4a12a0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
movsd xmm2, qword [0x4a1d90]
addsd xmm3, qword [eax*8 + 0x4a12a0]
mov eax, edx
and edx, 0xff000000
shr eax, 0x10
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a12a0]
movaps xmm0, xmm1
mulsd xmm0, xmm2
subsd xmm1, xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm2
cvttsd2si ecx, xmm1
subsd xmm3, xmm0
movaps xmm0, xmm4
mulsd xmm0, xmm2
shl ecx, 8
cvttsd2si eax, xmm3
subsd xmm4, xmm0
or ecx, eax
shl ecx, 8
cvttsd2si eax, xmm4
or ecx, eax
or ecx, edx
push ecx
call fcn.004267c0
push 0x333333
call fcn.00424300
push 0xd0ffff
call fcn.00424300
push 0xd0d0d0
call fcn.00424300
push 0xc0c0c0
call fcn.00424300
push 0xc0c0ff
call fcn.00424300
add esp, 0x18
push 5
call edi
push eax
call fcn.00424300
add esp, 4
xor esi, esi
push esi
call fcn.004267c0
add esi, 0x101010
add esp, 4
cmp esi, 0x1010100
jl 0x4383c7
push 0x2000
push 0
push 0
push 0
push str.background
push dword [ebp - 0xb4]
call dword [sym.imp.USER32.dll_LoadImageA]
push 0xffffffffffffffff
push 0xf
mov esi, eax
call edi
push eax
push 0xc0c0c0
push esi
call fcn.004272b0
push 8
push 0x20
push esi
push 0
push 0x4edf38
call fcn.004264d0
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 0x24
test esi, esi
je 0x43842f
push esi
call ebx
push 8
push 0x20
push 0
push str.Aboutbitmap
push 0x4edf38
call fcn.004264d0
call fcn.00469bf0
push eax
call fcn.00463db0
add esp, 0x18
push 2
call edi
mov esi, eax
mov dword [ebp - 0xac], esi
call fcn.00469bf0
cmp dword [0x4edf08], 0
mov edi, eax
je 0x43861a
mov edx, dword [ebp - 0xac]
xor esi, esi
mov eax, edx
mov ecx, edx
shr eax, 8
movzx eax, al
shr ecx, 0x10
movzx ecx, cl
movd xmm4, eax
cvtdq2pd xmm4, xmm4
shr eax, 0x1f
movd xmm0, ecx
addsd xmm4, qword [eax*8 + 0x4a12a0]
movzx eax, dl
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movd xmm5, eax
addsd xmm0, qword [ecx*8 + 0x4a12a0]
cvtdq2pd xmm5, xmm5
shr eax, 0x1f
movsd qword [ebp - 0xb8], xmm0
addsd xmm5, qword [eax*8 + 0x4a12a0]
movsd qword [ebp - 0xb0], xmm4
movsd qword [ebp - 0xa8], xmm5
movzx eax, byte [edi + 0x18a]
movsd xmm2, qword [0x4a1e28]
movd xmm3, esi
cvtdq2pd xmm3, xmm3
movd xmm1, eax
mulsd xmm3, qword [0x4a1d78]
cvtdq2pd xmm1, xmm1
mulsd xmm3, qword [0x4a1d88]
subsd xmm2, xmm3
mulsd xmm0, xmm3
mulsd xmm1, xmm2
addsd xmm1, xmm0
movaps xmm0, xmm4
mulsd xmm0, xmm3
cvttsd2si eax, xmm1
movzx ecx, al
movzx eax, byte [edi + 0x189]
shl ecx, 8
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm2
addsd xmm1, xmm0
movaps xmm0, xmm5
mulsd xmm0, xmm3
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
movzx eax, byte [edi + 0x188]
shl ecx, 8
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a12a0]
mulsd xmm1, xmm2
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
mov eax, dword [0x4edef8]
test eax, eax
je 0x438606
cmp dword [eax + 0xdd0], 0
je 0x438606
mov eax, ecx
shr eax, 0x10
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
push 0x4edf38
call fcn.00426be0
add esp, 0x10
test eax, eax
je 0x4385f6
mov eax, dword [0x4edef8]
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x4385de
push eax
call ebx
mov eax, dword [0x4edef8]
mov dword [eax + 0xdcc], 0
push dword [0x4edf38]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x4edef8]
mov dword [ecx + 0xdcc], eax
movsd xmm5, qword [ebp - 0xa8]
movsd xmm4, qword [ebp - 0xb0]
movsd xmm0, qword [ebp - 0xb8]
inc esi
cmp esi, 8
jl 0x4384e1
jmp 0x438623
push esi
call fcn.004267c0
add esp, 4
mov ebx, dword [ebp - 0x9c]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebx + 0xdcc]
test eax, eax
je 0x438646
push eax
call esi
mov dword [ebx + 0xdcc], 0
push dword [0x4edf38]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov dword [ebx + 0xdcc], eax
jmp 0x43866e
call fcn.00469bf0
push eax
call fcn.00463db0
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 4
mov eax, dword [0x4edef8]
test eax, eax
je 0x43879e
push 0x2000
push 0
push 0
push 0
push str.Errorbmp
push dword [eax + 0x10]
call dword [sym.imp.USER32.dll_LoadImageA]
mov edi, eax
mov eax, dword [0x554884]
test eax, eax
jne 0x4386b6
push eax
push 1
push 0xff
push 0xe
push 0x10
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
mov dword [0x554884], eax
push 0xffffff
push edi
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x4386ca
push edi
call esi
mov eax, dword [0x554880]
xor ecx, ecx
inc eax
mov edi, 4
mov dword [0x554880], eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x554890]
call fcn.00483b6d
mov ecx, dword [0x554880]
mov dword [0x554890], eax
mov dword [eax + ecx*4 - 4], 1
xor ecx, ecx
mov eax, dword [0x554880]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x554888]
call fcn.00483b6d
mov ecx, dword [0x554880]
mov dword [0x554888], eax
mov dword [eax + ecx*4 - 4], 0x2c0c0ff
xor ecx, ecx
mov eax, dword [0x554880]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x55488c]
call fcn.00483b6d
mov ecx, dword [0x554880]
add esp, 0x18
mov dword [0x55488c], eax
mov dword [eax + ecx*4 - 4], 0
mov eax, dword [0x4edef8]
cmp dword [eax + 0xdcc], 0
je 0x43879e
mov ecx, dword [0x554880]
mov eax, dword [0x554888]
push dword [eax + ecx*4 - 4]
call fcn.004267c0
mov ecx, dword [0x55488c]
mov eax, dword [0x554880]
push dword [ecx + eax*4 - 4]
call fcn.004267c0
add esp, 8
push 0x2000
push 0
push 0
push 0
push str.dragbmp
push dword [ebx + 0x14]
call dword [sym.imp.USER32.dll_LoadImageA]
push 0
push 1
push 0xff
push 0x10
push 0x10
mov edi, eax
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
push 0xff00ff
push edi
push eax
mov dword [0x4edef4], eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x4387e5
push edi
call esi
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047f41c
mov esp, ebp
pop ebp
ret