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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [0x4cdbf8]
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 0x437e3e
push 0x1f40
call fcn.00487397
mov ebx, eax
add esp, 4
mov dword [ebp - 0x9c], ebx
test ebx, ebx
je 0x437e3e
push 0x1f40
push 0
push ebx
call fcn.00481c10
add esp, 0xc
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x437e63
cmp byte [ecx], 0
je 0x437e63
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 0x437e54
jmp 0x437e75
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 0x437e76
mov ax, word [0x4a0eb4]
mov word [edi], ax
test esi, esi
je 0x437e90
mov dword [ebx + 0x10], esi
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x437e9d
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 0x1e10], 0x4b9cb4
test al, 1
jne 0x439255
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.00476d10
test dword [ebx + 4], 0x200
je 0x437f18
mov eax, dword [0x555690]
test eax, eax
je 0x437f01
call eax
neg eax
sbb eax, eax
and eax, 0x100080
or dword [ebx + 4], eax
mov eax, dword [0x555694]
test eax, eax
je 0x437f18
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], 0x4a1348
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], 0x4a1348
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], 0x452f60
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], 0x43a9b0
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], 0x456bb0
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], 0x443470
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 0x4381a9
push 1
push dword [ebp - 0xb4]
call fcn.00443f70
add esp, 8
mov ebx, dword [ebp - 0x9c]
push ebx
call fcn.004447f0
add esp, 4
cmp dword [ebx + 0x1de8], 0
jne 0x4381df
push 0xb8
call fcn.00487397
push 0x400
push eax
mov dword [ebx + 0x1de8], eax
call fcn.0041cb50
add esp, 0xc
cmp dword [ebp - 0xa4], 0
je 0x439255
or dword [ebx + 4], 4
push 0xfcc
call fcn.00487397
add esp, 4
mov dword [ebx + 0x1f0c], eax
test eax, eax
je 0x438217
push 0xfcc
push 0
push eax
call fcn.00481c10
add esp, 0xc
mov dword [ebx + 0x1f28], fcn.00442770
lea edi, [ebx + 0xd3c]
mov dword [ebx + 0x1f2c], 0x436f40
xor esi, esi
mov dword [ebx + 0x1f30], 0x43f050
mov dword [ebx + 0x1f34], 0x43f2f0
mov dword [ebx + 0x1f10], 0x487397
mov dword [ebx + 0x1f14], 0x4845db
mov dword [ebx + 0x1f18], 0x48737c
push str.LSS__cs__d_
push esi
push str.LSS__cs__d_
lea eax, [ebp - 0x68]
push 0x64
push eax
call fcn.00420ad0
push eax
push edi
call fcn.004224f0
inc esi
add esp, 0x1c
add edi, 0x18
cmp esi, 5
jl 0x438265
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.00420ad0
push eax
push edi
call fcn.004224f0
inc esi
add esp, 0x1c
add edi, 0x18
cmp esi, 0xa
jl 0x4382a0
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 0x4b19af
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.00426f30
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 0x43838e
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.00426f30
add esp, 0x14
push 0xff00ff
push edi
push dword [ebx + 0x1f38]
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x4383e5
push edi
call esi
push 0x10
call fcn.00487397
mov esi, eax
add esp, 4
test esi, esi
je 0x438432
xorps xmm0, xmm0
push 0xfa4
movups xmmword [esi], xmm0
call fcn.00487397
add esp, 4
mov dword [esi + 0xc], eax
test eax, eax
jne 0x43841c
push esi
call fcn.0048737c
add esp, 4
xor esi, esi
jmp 0x438432
push 0xfa4
push 0
push eax
mov dword [esi], 0x3e9
call fcn.00481c10
add esp, 0xc
cmp dword [ebp + 0x18], 0
mov dword [0x4eef34], esi
je 0x43845e
call fcn.00470120
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0
push 0x439530
push 2
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
mov dword [0x555ab8], eax
push 0
push 0
push 0
push 0x431a50
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x198
mov dword [ebx + 0xe04], eax
xorps xmm0, xmm0
push 0
push 0x555920
movups xmmword [0x555900], xmm0
mov dword [0x555910], 0
call fcn.00481c10
push 0x198
push 0
push 0x555720
call fcn.00481c10
add esp, 0x18
call fcn.00437bd0
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
je 0x4384cc
cmp eax, 1
je 0x4384cc
xor eax, eax
jmp 0x4384d1
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 [0x4eef40], eax
call edi
mov ebx, dword [sym.imp.USER32.dll_ReleaseDC]
xor ecx, ecx
cmp eax, 0x10
push esi
setne cl
and dword [0x4eef48], 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 0x4390ca
mov eax, dword [0x4eef38]
test eax, eax
je 0x4385ec
push eax
call fcn.0048737c
add esp, 4
mov dword [0x4eef38], 0
cmp dword [ebx + 0x4cc], 2
jl 0x43863a
mov eax, dword [0x4eeef8]
test eax, eax
je 0x43863a
mov edx, dword [eax]
test edx, edx
je 0x43863a
mov eax, dword [0x4eeee0]
test eax, eax
je 0x438615
mov ecx, dword [eax + 0x190]
jmp 0x43861b
mov ecx, dword [0x4eeee4]
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 0x4eef38
call fcn.00426f30
mov esi, dword [sym.imp.USER32.dll_GetSysColor]
add esp, 0x14
push 0x10
call esi
mov edx, eax
movsd xmm5, qword [0x4a1d28]
movzx ecx, dl
movaps xmm0, xmm5
movsd xmm2, qword [0x4a1c58]
movd xmm4, ecx
shr ecx, 0x1f
cvtdq2pd xmm4, xmm4
addsd xmm4, qword [ecx*8 + 0x4a1160]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4a1160]
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 + 0x4a1160]
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.00427220
add esp, 4
push 0x14
call esi
mov edx, eax
movsd xmm2, qword [0x4a1c20]
movzx ecx, dl
movd xmm4, ecx
cvtdq2pd xmm4, xmm4
shr ecx, 0x1f
addsd xmm4, qword [ecx*8 + 0x4a1160]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4a1160]
mov eax, edx
shr eax, 0x10
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a1160]
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.00427220
add esp, 4
push 0x10
call esi
mov edx, eax
movsd xmm4, qword [0x4a1d28]
movzx ecx, dl
movaps xmm0, xmm4
movsd xmm5, qword [0x4a1c40]
movd xmm3, ecx
shr ecx, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [ecx*8 + 0x4a1160]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
shr eax, 0x1f
cvtdq2pd xmm2, xmm2
addsd xmm2, qword [eax*8 + 0x4a1160]
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 + 0x4a1160]
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.00427220
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 + 0x4a1160]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
addsd xmm2, qword [eax*8 + 0x4a1160]
movsd xmm4, qword [0x4a1d28]
mov eax, edx
movsd xmm5, qword [0x4a1c40]
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 + 0x4a1160]
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.00427220
push 0xe00000
call fcn.00427220
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 [0x4a1c60]
movsd xmm2, qword [0x4a1cd0]
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.00427220
mov ecx, dword [ebp - 0xa0]
mov eax, ecx
movsd xmm3, qword [0x4a1c98]
movsd xmm2, qword [0x4a1cb8]
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.00427220
movd xmm2, dword [ebp - 0xa4]
movsd xmm1, qword [0x4a1c10]
movsd xmm0, qword [0x4a1ce0]
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.00427220
mov edi, dword [sym.imp.USER32.dll_GetSysColor]
add esp, 0xc
push 5
call edi
mov edx, eax
movsd xmm2, qword [0x4a1c08]
movzx ecx, dl
movd xmm4, ecx
shr ecx, 0x1f
cvtdq2pd xmm4, xmm4
addsd xmm4, qword [ecx*8 + 0x4a1160]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4a1160]
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 + 0x4a1160]
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.00427220
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 + 0x4a1160]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
cvtdq2pd xmm3, xmm3
shr eax, 0x1f
addsd xmm3, qword [eax*8 + 0x4a1160]
mov eax, edx
shr eax, 0x10
movzx eax, al
movd xmm1, eax
movsd xmm2, qword [0x4a1c18]
and edx, 0xff000000
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4a1160]
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.00427220
add esp, 4
push 5
call edi
mov edx, eax
movsd xmm4, qword [0x4a1c40]
movzx ecx, dl
movd xmm3, ecx
shr ecx, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [ecx*8 + 0x4a1160]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
shr eax, 0x1f
cvtdq2pd xmm2, xmm2
addsd xmm2, qword [eax*8 + 0x4a1160]
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 + 0x4a1160]
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.00427220
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 + 0x4a1160]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
movsd xmm2, qword [0x4a1c50]
addsd xmm3, qword [eax*8 + 0x4a1160]
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 + 0x4a1160]
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.00427220
push 0x333333
call fcn.00424d50
push 0xd0ffff
call fcn.00424d50
push 0xd0d0d0
call fcn.00424d50
push 0xc0c0c0
call fcn.00424d50
push 0xc0c0ff
call fcn.00424d50
add esp, 0x18
push 5
call edi
push eax
call fcn.00424d50
add esp, 4
xor esi, esi
push esi
call fcn.00427220
add esi, 0x101010
add esp, 4
cmp esi, 0x1010100
jl 0x438e37
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.00427d00
push 8
push 0x20
push esi
push 0
push 0x4eef38
call fcn.00426f30
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 0x24
test esi, esi
je 0x438e9f
push esi
call ebx
push 8
push 0x20
push 0
push str.Aboutbitmap
push 0x4eef38
call fcn.00426f30
call fcn.0046a660
push eax
call fcn.00464830
add esp, 0x18
push 2
call edi
mov esi, eax
mov dword [ebp - 0xac], esi
call fcn.0046a660
cmp dword [0x4eef08], 0
mov edi, eax
je 0x43908a
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 + 0x4a1160]
movzx eax, dl
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movd xmm5, eax
addsd xmm0, qword [ecx*8 + 0x4a1160]
cvtdq2pd xmm5, xmm5
shr eax, 0x1f
movsd qword [ebp - 0xb8], xmm0
addsd xmm5, qword [eax*8 + 0x4a1160]
movsd qword [ebp - 0xb0], xmm4
movsd qword [ebp - 0xa8], xmm5
movzx eax, byte [edi + 0x18a]
movsd xmm2, qword [0x4a1ce8]
movd xmm3, esi
cvtdq2pd xmm3, xmm3
movd xmm1, eax
mulsd xmm3, qword [0x4a1c38]
cvtdq2pd xmm1, xmm1
mulsd xmm3, qword [0x4a1c48]
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 + 0x4a1160]
mulsd xmm1, xmm2
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
mov eax, dword [0x4eeef8]
test eax, eax
je 0x439076
cmp dword [eax + 0xdd0], 0
je 0x439076
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 0x4eef38
call fcn.00427640
add esp, 0x10
test eax, eax
je 0x439066
mov eax, dword [0x4eeef8]
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x43904e
push eax
call ebx
mov eax, dword [0x4eeef8]
mov dword [eax + 0xdcc], 0
push dword [0x4eef38]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x4eeef8]
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 0x438f51
jmp 0x439093
push esi
call fcn.00427220
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 0x4390b6
push eax
call esi
mov dword [ebx + 0xdcc], 0
push dword [0x4eef38]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov dword [ebx + 0xdcc], eax
jmp 0x4390de
call fcn.0046a660
push eax
call fcn.00464830
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 4
mov eax, dword [0x4eeef8]
test eax, eax
je 0x43920e
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 [0x555904]
test eax, eax
jne 0x439126
push eax
push 1
push 0xff
push 0xe
push 0x10
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
mov dword [0x555904], eax
push 0xffffff
push edi
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x43913a
push edi
call esi
mov eax, dword [0x555900]
xor ecx, ecx
inc eax
mov edi, 4
mov dword [0x555900], eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x555910]
call fcn.004845db
mov ecx, dword [0x555900]
mov dword [0x555910], eax
mov dword [eax + ecx*4 - 4], 1
xor ecx, ecx
mov eax, dword [0x555900]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x555908]
call fcn.004845db
mov ecx, dword [0x555900]
mov dword [0x555908], eax
mov dword [eax + ecx*4 - 4], 0x2c0c0ff
xor ecx, ecx
mov eax, dword [0x555900]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x55590c]
call fcn.004845db
mov ecx, dword [0x555900]
add esp, 0x18
mov dword [0x55590c], eax
mov dword [eax + ecx*4 - 4], 0
mov eax, dword [0x4eeef8]
cmp dword [eax + 0xdcc], 0
je 0x43920e
mov ecx, dword [0x555900]
mov eax, dword [0x555908]
push dword [eax + ecx*4 - 4]
call fcn.00427220
mov ecx, dword [0x55590c]
mov eax, dword [0x555900]
push dword [ecx + eax*4 - 4]
call fcn.00427220
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 [0x4eeef4], eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x439255
push edi
call esi
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047fe8c
mov esp, ebp
pop ebp
ret