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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [0x4a9bf0]
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 0x4211ee
push 0x1f40
call fcn.0046dc45
mov ebx, eax
add esp, 4
mov dword [ebp - 0x9c], ebx
test ebx, ebx
je 0x4211ee
push 0x1f40
push 0
push ebx
call fcn.00464960
add esp, 0xc
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x421213
cmp byte [ecx], 0
je 0x421213
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 0x421204
jmp 0x421225
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 0x421226
mov ax, word [0x47fe4c]
mov word [edi], ax
test esi, esi
je 0x421240
mov dword [ebx + 0x10], esi
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x42124d
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 0x1e10], 0x495cb4
test al, 1
jne 0x422605
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.0044db00
test dword [ebx + 4], 0x200
je 0x4212c8
mov eax, dword [0x520330]
test eax, eax
je 0x4212b1
call eax
neg eax
sbb eax, eax
and eax, 0x100080
or dword [ebx + 4], eax
mov eax, dword [0x520334]
test eax, eax
je 0x4212c8
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], str.NoSubclass
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], str.NoSubclass
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], 0x45ac50
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], 0x423ad0
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], 0x444ba0
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], 0x42c1b0
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 0x421559
push 1
push dword [ebp - 0xb4]
call fcn.0042cb40
add esp, 8
mov ebx, dword [ebp - 0x9c]
push ebx
call fcn.0042d370
add esp, 4
cmp dword [ebx + 0x1de8], 0
jne 0x42158f
push 0xb8
call fcn.0046dc45
push 0x400
push eax
mov dword [ebx + 0x1de8], eax
call fcn.004069e0
add esp, 0xc
cmp dword [ebp - 0xa4], 0
je 0x422605
or dword [ebx + 4], 4
push 0xfcc
call fcn.0046dc45
add esp, 4
mov dword [ebx + 0x1f0c], eax
test eax, eax
je 0x4215c7
push 0xfcc
push 0
push eax
call fcn.00464960
add esp, 0xc
mov dword [ebx + 0x1f28], fcn.0042b4e0
lea edi, [ebx + 0xd3c]
mov dword [ebx + 0x1f2c], 0x420310
xor esi, esi
mov dword [ebx + 0x1f30], 0x4280a0
mov dword [ebx + 0x1f34], 0x428320
mov dword [ebx + 0x1f10], 0x46dc45
mov dword [ebx + 0x1f14], 0x466ae4
mov dword [ebx + 0x1f18], 0x468056
push str.LSS__cs__d_
push esi
push str.LSS__cs__d_
lea eax, [ebp - 0x68]
push 0x64
push eax
call fcn.0040ad10
push eax
push edi
call fcn.0040bdd0
inc esi
add esp, 0x1c
add edi, 0x18
cmp esi, 5
jl 0x421615
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.0040ad10
push eax
push edi
call fcn.0040bdd0
inc esi
add esp, 0x1c
add edi, 0x18
cmp esi, 0xa
jl 0x421650
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 0x490b7c
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.00410950
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 0x42173e
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.00410950
add esp, 0x14
push 0xff00ff
push edi
push dword [ebx + 0x1f38]
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x421795
push edi
call esi
push 0x10
call fcn.0046dc45
mov esi, eax
add esp, 4
test esi, esi
je 0x4217e2
xorps xmm0, xmm0
push 0xfa4
movups xmmword [esi], xmm0
call fcn.0046dc45
add esp, 4
mov dword [esi + 0xc], eax
test eax, eax
jne 0x4217cc
push esi
call fcn.00468056
add esp, 4
xor esi, esi
jmp 0x4217e2
push 0xfa4
push 0
push eax
mov dword [esi], 0x3e9
call fcn.00464960
add esp, 0xc
cmp dword [ebp + 0x18], 0
mov dword [0x4bd770], esi
je 0x42180e
call fcn.0043d4f0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0
push 0x422670
push 2
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
mov dword [0x5205d8], eax
push 0
push 0
push 0
push 0x41b030
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x198
mov dword [ebx + 0xe04], eax
xorps xmm0, xmm0
push 0
push 0x520440
movups xmmword [0x520420], xmm0
mov dword [0x520430], 0
call fcn.00464960
push 0x198
push 0
push 0x520100
call fcn.00464960
add esp, 0x18
call fcn.00420f80
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
je 0x42187c
cmp eax, 1
je 0x42187c
xor eax, eax
jmp 0x421881
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 [0x4bd780], eax
call edi
mov ebx, dword [sym.imp.USER32.dll_ReleaseDC]
xor ecx, ecx
cmp eax, 0x10
push esi
setne cl
and dword [0x4bd788], 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 0x42247a
mov eax, dword [0x4bd778]
test eax, eax
je 0x42199c
push eax
call fcn.00468056
add esp, 4
mov dword [0x4bd778], 0
cmp dword [ebx + 0x4cc], 2
jl 0x4219ea
mov eax, dword [0x4bd734]
test eax, eax
je 0x4219ea
mov edx, dword [eax]
test edx, edx
je 0x4219ea
mov eax, dword [0x4bd720]
test eax, eax
je 0x4219c5
mov ecx, dword [eax + 0x190]
jmp 0x4219cb
mov ecx, dword [0x4bd724]
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 0x4bd778
call fcn.00410950
mov esi, dword [sym.imp.USER32.dll_GetSysColor]
add esp, 0x14
push 0x10
call esi
mov edx, eax
movsd xmm5, qword [0x480e48]
movzx ecx, dl
movaps xmm0, xmm5
movsd xmm2, qword [0x480d78]
movd xmm4, ecx
shr ecx, 0x1f
cvtdq2pd xmm4, xmm4
addsd xmm4, qword [ecx*8 + 0x4801d0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4801d0]
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 + 0x4801d0]
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.00410c40
add esp, 4
push 0x14
call esi
mov edx, eax
movsd xmm2, qword [0x480d40]
movzx ecx, dl
movd xmm4, ecx
cvtdq2pd xmm4, xmm4
shr ecx, 0x1f
addsd xmm4, qword [ecx*8 + 0x4801d0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4801d0]
mov eax, edx
shr eax, 0x10
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4801d0]
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.00410c40
add esp, 4
push 0x10
call esi
mov edx, eax
movsd xmm4, qword [0x480e48]
movzx ecx, dl
movaps xmm0, xmm4
movsd xmm5, qword [0x480d60]
movd xmm3, ecx
shr ecx, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [ecx*8 + 0x4801d0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
shr eax, 0x1f
cvtdq2pd xmm2, xmm2
addsd xmm2, qword [eax*8 + 0x4801d0]
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 + 0x4801d0]
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.00410c40
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 + 0x4801d0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
addsd xmm2, qword [eax*8 + 0x4801d0]
movsd xmm4, qword [0x480e48]
mov eax, edx
movsd xmm5, qword [0x480d60]
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 + 0x4801d0]
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.00410c40
push 0xe00000
call fcn.00410c40
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 [0x480d80]
movsd xmm2, qword [0x480df0]
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.00410c40
mov ecx, dword [ebp - 0xa0]
mov eax, ecx
movsd xmm3, qword [0x480db8]
movsd xmm2, qword [0x480dd8]
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.00410c40
movd xmm2, dword [ebp - 0xa4]
movsd xmm1, qword [0x480d30]
movsd xmm0, qword [0x480e00]
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.00410c40
mov edi, dword [sym.imp.USER32.dll_GetSysColor]
add esp, 0xc
push 5
call edi
mov edx, eax
movsd xmm2, qword [0x480d28]
movzx ecx, dl
movd xmm4, ecx
shr ecx, 0x1f
cvtdq2pd xmm4, xmm4
addsd xmm4, qword [ecx*8 + 0x4801d0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4801d0]
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 + 0x4801d0]
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.00410c40
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 + 0x4801d0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
cvtdq2pd xmm3, xmm3
shr eax, 0x1f
addsd xmm3, qword [eax*8 + 0x4801d0]
mov eax, edx
shr eax, 0x10
movzx eax, al
movd xmm1, eax
movsd xmm2, qword [0x480d38]
and edx, 0xff000000
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4801d0]
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.00410c40
add esp, 4
push 5
call edi
mov edx, eax
movsd xmm4, qword [0x480d60]
movzx ecx, dl
movd xmm3, ecx
shr ecx, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [ecx*8 + 0x4801d0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
shr eax, 0x1f
cvtdq2pd xmm2, xmm2
addsd xmm2, qword [eax*8 + 0x4801d0]
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 + 0x4801d0]
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.00410c40
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 + 0x4801d0]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
movsd xmm2, qword [0x480d70]
addsd xmm3, qword [eax*8 + 0x4801d0]
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 + 0x4801d0]
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.00410c40
push 0x333333
call fcn.0040e890
push 0xd0ffff
call fcn.0040e890
push 0xd0d0d0
call fcn.0040e890
push 0xc0c0c0
call fcn.0040e890
push 0xc0c0ff
call fcn.0040e890
add esp, 0x18
push 5
call edi
push eax
call fcn.0040e890
add esp, 4
xor esi, esi
push esi
call fcn.00410c40
add esi, 0x101010
add esp, 4
cmp esi, 0x1010100
jl 0x4221e7
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.00411660
push 8
push 0x20
push esi
push 0
push 0x4bd778
call fcn.00410950
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 0x24
test esi, esi
je 0x42224f
push esi
call ebx
push 8
push 0x20
push 0
push str.Aboutbitmap
push 0x4bd778
call fcn.00410950
call fcn.0043c990
push eax
call fcn.004372d0
add esp, 0x18
push 2
call edi
mov esi, eax
mov dword [ebp - 0xac], esi
call fcn.0043c990
cmp dword [0x4bd744], 0
mov edi, eax
je 0x42243a
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 + 0x4801d0]
movzx eax, dl
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movd xmm5, eax
addsd xmm0, qword [ecx*8 + 0x4801d0]
cvtdq2pd xmm5, xmm5
shr eax, 0x1f
movsd qword [ebp - 0xb8], xmm0
addsd xmm5, qword [eax*8 + 0x4801d0]
movsd qword [ebp - 0xb0], xmm4
movsd qword [ebp - 0xa8], xmm5
movzx eax, byte [edi + 0x18a]
movsd xmm2, qword [0x480e08]
movd xmm3, esi
cvtdq2pd xmm3, xmm3
movd xmm1, eax
mulsd xmm3, qword [0x480d58]
cvtdq2pd xmm1, xmm1
mulsd xmm3, qword [0x480d68]
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 + 0x4801d0]
mulsd xmm1, xmm2
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
mov eax, dword [0x4bd734]
test eax, eax
je 0x422426
cmp dword [eax + 0xdd0], 0
je 0x422426
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 0x4bd778
call fcn.00410ff0
add esp, 0x10
test eax, eax
je 0x422416
mov eax, dword [0x4bd734]
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x4223fe
push eax
call ebx
mov eax, dword [0x4bd734]
mov dword [eax + 0xdcc], 0
push dword [0x4bd778]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x4bd734]
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 0x422301
jmp 0x422443
push esi
call fcn.00410c40
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 0x422466
push eax
call esi
mov dword [ebx + 0xdcc], 0
push dword [0x4bd778]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov dword [ebx + 0xdcc], eax
jmp 0x42248e
call fcn.0043c990
push eax
call fcn.004372d0
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 4
mov eax, dword [0x4bd734]
test eax, eax
je 0x4225be
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 [0x520424]
test eax, eax
jne 0x4224d6
push eax
push 1
push 0xff
push 0xe
push 0x10
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
mov dword [0x520424], eax
push 0xffffff
push edi
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x4224ea
push edi
call esi
mov eax, dword [0x520420]
xor ecx, ecx
inc eax
mov edi, 4
mov dword [0x520420], eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x520430]
call fcn.00466ae4
mov ecx, dword [0x520420]
mov dword [0x520430], eax
mov dword [eax + ecx*4 - 4], 1
xor ecx, ecx
mov eax, dword [0x520420]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x520428]
call fcn.00466ae4
mov ecx, dword [0x520420]
mov dword [0x520428], eax
mov dword [eax + ecx*4 - 4], 0x2c0c0ff
xor ecx, ecx
mov eax, dword [0x520420]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x52042c]
call fcn.00466ae4
mov ecx, dword [0x520420]
add esp, 0x18
mov dword [0x52042c], eax
mov dword [eax + ecx*4 - 4], 0
mov eax, dword [0x4bd734]
cmp dword [eax + 0xdcc], 0
je 0x4225be
mov ecx, dword [0x520420]
mov eax, dword [0x520428]
push dword [eax + ecx*4 - 4]
call fcn.00410c40
mov ecx, dword [0x52042c]
mov eax, dword [0x520420]
push dword [ecx + eax*4 - 4]
call fcn.00410c40
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 [0x4bd730], eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x422605
push edi
call esi
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046300c
mov esp, ebp
pop ebp
ret