Function at 0x496290
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1cc
mov eax, dword [0x50dc10]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1bc], 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 - 0x1b0], ebx
mov dword [ebp - 0x1cc], esi
mov dword [ebp - 0x1b4], eax
push edi
test ebx, ebx
jne 0x4962fe
push 0x1f48
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1b0], ebx
test ebx, ebx
je 0x4962fe
push 0x1f48
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
call fcn.00474290
push 0x4e526c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
je 0x496380
push str.RtlGetVersion
push eax
call dword [0x595d84]
mov edi, eax
test edi, edi
je 0x496380
push 0x110
lea eax, [ebp - 0x180]
mov dword [ebp - 0x184], 0x114
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x184]
push eax
call edi
test eax, eax
jns 0x496355
xor eax, eax
jmp 0x496380
cmp dword [ebp - 0x17c], 0
jne 0x496371
cmp dword [ebp - 0x178], 0x55f0
jb 0x496371
mov eax, 0xb
jmp 0x496380
cmp dword [ebp - 0x180], 0xa
sbb eax, eax
and eax, 0xfffffff6
add eax, 0xa
mov ecx, dword [ebp + 0x14]
mov dword [ebx + 0x1f44], eax
test ecx, ecx
je 0x4963af
cmp byte [ecx], 0
je 0x4963af
lea edi, [ebx + 0x144]
mov edx, edi
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4963a0
jmp 0x4963c1
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 0x4963c2
mov ax, word [0x4f3a14]
mov word [edi], ax
test esi, esi
je 0x4963dc
mov dword [ebx + 0x10], esi
mov edi, dword [ebp - 0x1bc]
test edi, edi
je 0x4963e9
mov dword [ebx + 0x14], edi
mov eax, dword [ebx + 4]
mov dword [ebx + 0x1e10], 0x4f9cb4
test al, 1
jne 0x4977d8
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.004d8de0
test dword [ebx + 4], 0x200
je 0x496464
mov eax, dword [0x595890]
test eax, eax
je 0x49644d
call eax
neg eax
sbb eax, eax
and eax, 0x100080
or dword [ebx + 4], eax
mov eax, dword [0x595894]
test eax, eax
je 0x496464
call eax
neg eax
sbb eax, eax
and eax, 0x800000
or dword [ebx + 4], eax
lea eax, [ebp - 0x1ac]
push eax
push 0x8002
push esi
call dword [0x595e68]
mov esi, dword [sym.imp.USER32.dll_DefDlgProcA]
lea eax, [ebp - 0x1ac]
push eax
mov dword [ebp - 0x188], 0x4e5288
mov dword [ebp - 0x1a8], esi
mov dword [ebp - 0x198], 0
call dword [0x595ea4]
lea eax, [ebp - 0x1ac]
push eax
push 0x8002
push edi
call dword [0x595e68]
lea eax, [ebp - 0x1ac]
mov dword [ebp - 0x188], 0x4e5288
push eax
mov dword [ebp - 0x1a8], esi
mov dword [ebp - 0x198], 0
call dword [0x595ea4]
mov edi, dword [sym.imp.USER32.dll_LoadCursorA]
xorps xmm0, xmm0
movlpd qword [ebp - 0x19c], xmm0
push 0x7f00
movlpd qword [ebp - 0x1a4], xmm0
movlpd qword [ebp - 0x194], xmm0
movlpd qword [ebp - 0x18c], xmm0
mov dword [ebp - 0x1ac], 0x24080
mov dword [ebp - 0x1a8], 0x4b0a90
mov eax, dword [ebx + 0x10]
push 0
mov dword [ebp - 0x19c], eax
call edi
mov esi, dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0xf0ffff
mov dword [ebp - 0x194], eax
call esi
mov dword [ebp - 0x190], eax
lea eax, [ebp - 0x1ac]
push eax
mov dword [ebp - 0x188], str.TruncText
call dword [0x595ea4]
xorps xmm0, xmm0
mov dword [ebp - 0x1ac], 0x24080
movlpd qword [ebp - 0x19c], xmm0
push 0x7f00
movlpd qword [ebp - 0x1a4], xmm0
movlpd qword [ebp - 0x194], xmm0
movlpd qword [ebp - 0x18c], xmm0
mov dword [ebp - 0x1a8], 0x4bf060
mov eax, dword [ebx + 0x10]
push 0
mov dword [ebp - 0x19c], eax
call edi
push 0xf0ffff
mov dword [ebp - 0x194], eax
call esi
mov dword [ebp - 0x190], eax
lea eax, [ebp - 0x1ac]
push eax
mov dword [ebp - 0x188], str.MenuToolTip
call dword [0x595ea4]
xorps xmm0, xmm0
mov dword [ebp - 0x1ac], 0x4080
movlpd qword [ebp - 0x19c], xmm0
push 0x7f00
movlpd qword [ebp - 0x1a4], xmm0
movlpd qword [ebp - 0x194], xmm0
movlpd qword [ebp - 0x18c], xmm0
mov dword [ebp - 0x1a8], 0x4b48e0
mov eax, dword [ebx + 0x10]
push 0
mov dword [ebp - 0x19c], eax
call edi
push 0xe100ff
mov dword [ebp - 0x194], eax
call esi
mov dword [ebp - 0x190], eax
lea eax, [ebp - 0x1ac]
mov dword [ebp - 0x188], str.DragDrop
push eax
call dword [0x595ea4]
xorps xmm0, xmm0
mov dword [ebp - 0x1ac], 0x4080
movlpd qword [ebp - 0x19c], xmm0
push 0x7f00
movlpd qword [ebp - 0x1a4], xmm0
movlpd qword [ebp - 0x194], xmm0
movlpd qword [ebp - 0x18c], xmm0
mov dword [ebp - 0x1a8], 0x4a1180
mov eax, dword [ebx + 0x10]
push 0
mov dword [ebp - 0x19c], eax
call edi
push 0
mov dword [ebp - 0x194], eax
call esi
mov dword [ebp - 0x190], eax
lea eax, [ebp - 0x1ac]
push eax
mov dword [ebp - 0x188], str.Splitter
call dword [0x595ea4]
mov eax, dword [sym.imp.USER32.dll_DefWindowProcA]
xorps xmm0, xmm0
movlpd qword [ebp - 0x19c], xmm0
push 0x7f00
movlpd qword [ebp - 0x1a4], xmm0
movlpd qword [ebp - 0x194], xmm0
movlpd qword [ebp - 0x18c], xmm0
mov dword [ebp - 0x1ac], 0x80
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebx + 0x10]
push 0
mov dword [ebp - 0x19c], eax
call edi
push 0
mov dword [ebp - 0x194], eax
call esi
mov dword [ebp - 0x190], eax
lea eax, [ebp - 0x1ac]
push eax
mov dword [ebp - 0x188], str.SplitterShadow
call dword [0x595ea4]
and dword [ebp + 0x18], 1
je 0x49673a
push 1
push dword [ebp - 0x1cc]
call fcn.004a1c20
add esp, 8
push ebx
call fcn.004a1e30
add esp, 4
cmp dword [ebx + 0x1de8], 0
jne 0x49676a
push 0xb8
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
push 0x400
push eax
mov dword [ebx + 0x1de8], eax
call fcn.0047b290
add esp, 0xc
cmp dword [ebp - 0x1b4], 0
je 0x4977d8
or dword [ebx + 4], 4
push 0xfcc
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [ebx + 0x1f0c], eax
test eax, eax
je 0x4967a2
push 0xfcc
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebx + 0x1f28], fcn.004a0480
lea edi, [ebx + 0xd3c]
mov dword [ebx + 0x1f2c], 0x4939c0
xor esi, esi
mov dword [ebx + 0x1f30], 0x49cb10
mov dword [ebx + 0x1f34], 0x49cdb0
mov dword [ebx + 0x1f10], 0x4e353d
mov dword [ebx + 0x1f14], 0x4e351f
mov dword [ebx + 0x1f18], 0x4e3537
push str.LSS__cs__d_
push esi
push str.LSS__cs__d_
lea eax, [ebp - 0x68]
push 0x64
push eax
call fcn.0047f200
push eax
push edi
call fcn.00480eb0
inc esi
add esp, 0x1c
add edi, 0x18
cmp esi, 5
jl 0x4967f0
xor esi, esi
lea edi, [ebx + 0x1e14]
push str.LSS__cs2__d_
push esi
push str.LSS__cs2__d_
lea eax, [ebp - 0x68]
push 0x64
push eax
call fcn.0047f200
push eax
push edi
call fcn.00480eb0
inc esi
add esp, 0x1c
add edi, 0x18
cmp esi, 0xa
jl 0x496821
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 0x4eb673
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 - 0x1b4], esi
call fcn.00484340
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 0x49690f
push dword [ebp - 0x1b4]
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.00484340
add esp, 0x14
push 0xff00ff
push edi
push dword [ebx + 0x1f38]
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x496966
push edi
call esi
push 0x10
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov esi, eax
add esp, 4
test esi, esi
je 0x4969b3
xorps xmm0, xmm0
push 0xfa4
movups xmmword [esi], xmm0
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [esi + 0xc], eax
test eax, eax
jne 0x49699d
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
add esp, 4
xor esi, esi
jmp 0x4969b3
push 0xfa4
push 0
push eax
mov dword [esi], 0x3e9
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
cmp dword [ebp + 0x18], 0
mov dword [0x52e870], esi
je 0x4969df
call fcn.004d1e70
call dword [0x595ea0]
push eax
push 0
push 0x497ac0
push 2
call dword [0x595eb0]
mov dword [0x595cb8], eax
push 0
push 0
push 0
push 0x48f580
push 0
push 0
call dword [0x595dec]
push 0x198
mov dword [ebx + 0xe04], eax
xorps xmm0, xmm0
push 0
push 0x595b20
movups xmmword [0x595b00], xmm0
mov dword [0x595b10], 0
call sub.VCRUNTIME140.dll_memset
push 0x198
push 0
push 0x595940
call sub.VCRUNTIME140.dll_memset
add esp, 0x18
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
je 0x496a48
cmp eax, 1
je 0x496a48
xor eax, eax
jmp 0x496a4d
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 [0x52e880], eax
call edi
mov ebx, dword [sym.imp.USER32.dll_ReleaseDC]
xor ecx, ecx
cmp eax, 0x10
push esi
setne cl
and dword [0x52e888], ecx
push 0
call ebx
push 0x14
call dword [sym.imp.USER32.dll_GetSysColor]
mov esi, dword [ebp - 0x1b0]
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 - 0x1b0]
push 9
mov dword [ecx + 0xde8], eax
call esi
mov ecx, dword [ebp - 0x1b0]
push 2
mov dword [ecx + 0xdec], eax
call esi
mov ecx, dword [ebp - 0x1b0]
push 0x14
mov dword [ecx + 0xdf0], eax
call esi
mov ecx, dword [ebp - 0x1b0]
push 0x15
mov dword [ecx + 0xdf4], eax
call esi
mov ecx, dword [ebp - 0x1b0]
push 3
mov dword [ecx + 0xdf8], eax
call esi
mov ecx, dword [ebp - 0x1b0]
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 - 0x1b0]
shr edi, 8
and edi, 1
mov dword [ebx + 0xdd0], edi
je 0x49764d
mov eax, dword [0x52e878]
test eax, eax
je 0x496b68
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
add esp, 4
mov dword [0x52e878], 0
cmp dword [ebx + 0x4cc], 2
jl 0x496bb6
mov eax, dword [0x52e838]
test eax, eax
je 0x496bb6
mov edx, dword [eax]
test edx, edx
je 0x496bb6
mov eax, dword [0x52e820]
test eax, eax
je 0x496b91
mov ecx, dword [eax + 0x190]
jmp 0x496b97
mov ecx, dword [0x52e824]
push str.Running_in_palette_mode
push str.Running_in_palette_mode
push eax
push ecx
push 0
push 0x158
push str.LibMain.c
push 0
call edx
add esp, 0x20
push 8
push 0x10
push 0
push str.exitbmp16
push 0x52e878
call fcn.00484340
mov esi, dword [sym.imp.USER32.dll_GetSysColor]
add esp, 0x14
push 0x10
call esi
mov edx, eax
movsd xmm5, qword [0x4e5ae0]
movzx ecx, dl
movaps xmm0, xmm5
movsd xmm2, qword [0x4e5a08]
movd xmm4, ecx
shr ecx, 0x1f
cvtdq2pd xmm4, xmm4
addsd xmm4, qword [ecx*8 + 0x4f4e60]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4f4e60]
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 + 0x4f4e60]
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.00484630
add esp, 4
push 0x14
call esi
mov edx, eax
movsd xmm2, qword [0x4e59c8]
movzx ecx, dl
movd xmm4, ecx
cvtdq2pd xmm4, xmm4
shr ecx, 0x1f
addsd xmm4, qword [ecx*8 + 0x4f4e60]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4f4e60]
mov eax, edx
shr eax, 0x10
movzx eax, al
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4f4e60]
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.00484630
add esp, 4
push 0x10
call esi
mov edx, eax
movsd xmm4, qword [0x4e5ae0]
movzx ecx, dl
movaps xmm0, xmm4
movsd xmm5, qword [0x4e59e8]
movd xmm3, ecx
shr ecx, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [ecx*8 + 0x4f4e60]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
shr eax, 0x1f
cvtdq2pd xmm2, xmm2
addsd xmm2, qword [eax*8 + 0x4f4e60]
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 + 0x4f4e60]
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.00484630
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 + 0x4f4e60]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
addsd xmm2, qword [eax*8 + 0x4f4e60]
movsd xmm4, qword [0x4e5ae0]
mov eax, edx
movsd xmm5, qword [0x4e59e8]
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 + 0x4f4e60]
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.00484630
push 0xe00000
call fcn.00484630
add esp, 8
push 0x14
call esi
push 0xf
mov dword [ebp - 0x1b4], eax
call esi
push 0x10
mov ebx, eax
call esi
mov edx, dword [ebp - 0x1b4]
mov ecx, ebx
movsd xmm3, qword [0x4e5a10]
movsd xmm2, qword [0x4e5a90]
mov dword [ebp - 0x1bc], 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.00484630
mov ecx, dword [ebp - 0x1bc]
mov eax, ecx
movsd xmm3, qword [0x4e5a50]
movsd xmm2, qword [0x4e5a68]
sar eax, 0x10
movzx eax, al
mov dword [ebp - 0x1b4], 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 - 0x1bc], eax
mulsd xmm1, xmm3
movd xmm4, eax
movzx eax, cl
mulsd xmm0, xmm2
mov dword [ebp - 0x1c4], 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.00484630
movd xmm2, dword [ebp - 0x1b4]
movsd xmm1, qword [0x4e59b8]
movsd xmm0, qword [0x4e5aa0]
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 - 0x1bc]
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 - 0x1c4]
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.00484630
mov edi, dword [sym.imp.USER32.dll_GetSysColor]
add esp, 0xc
push 5
call edi
mov edx, eax
movsd xmm2, qword [0x4e59b0]
movzx ecx, dl
movd xmm4, ecx
shr ecx, 0x1f
cvtdq2pd xmm4, xmm4
addsd xmm4, qword [ecx*8 + 0x4f4e60]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [eax*8 + 0x4f4e60]
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 + 0x4f4e60]
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.00484630
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 + 0x4f4e60]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
cvtdq2pd xmm3, xmm3
shr eax, 0x1f
addsd xmm3, qword [eax*8 + 0x4f4e60]
mov eax, edx
shr eax, 0x10
movzx eax, al
movd xmm1, eax
movsd xmm2, qword [0x4e59c0]
and edx, 0xff000000
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4f4e60]
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.00484630
add esp, 4
push 5
call edi
mov edx, eax
movsd xmm4, qword [0x4e59e8]
movzx ecx, dl
movd xmm3, ecx
shr ecx, 0x1f
cvtdq2pd xmm3, xmm3
addsd xmm3, qword [ecx*8 + 0x4f4e60]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm2, eax
shr eax, 0x1f
cvtdq2pd xmm2, xmm2
addsd xmm2, qword [eax*8 + 0x4f4e60]
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 + 0x4f4e60]
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.00484630
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 + 0x4f4e60]
mov ecx, edx
shr ecx, 8
movzx eax, cl
movd xmm3, eax
shr eax, 0x1f
cvtdq2pd xmm3, xmm3
movsd xmm2, qword [0x4e5a00]
addsd xmm3, qword [eax*8 + 0x4f4e60]
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 + 0x4f4e60]
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.00484630
push 0x333333
call fcn.00483870
push 0xd0ffff
call fcn.00483870
push 0xd0d0d0
call fcn.00483870
push 0xc0c0c0
call fcn.00483870
push 0xc0c0ff
call fcn.00483870
add esp, 0x18
push 5
call edi
push eax
call fcn.00483870
add esp, 4
xor esi, esi
push esi
call fcn.00484630
add esi, 0x101010
add esp, 4
cmp esi, 0x1010100
jl 0x4973b3
push 0x2000
push 0
push 0
push 0
push str.background
push dword [ebp - 0x1cc]
call dword [sym.imp.USER32.dll_LoadImageA]
push 0xffffffffffffffff
push 0xf
mov esi, eax
call edi
push eax
push 0xc0c0c0
push esi
call fcn.00485110
push 8
push 0x20
push esi
push 0
push 0x52e878
call fcn.00484340
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 0x24
test esi, esi
je 0x49741b
push esi
call ebx
push 8
push 0x20
push 0
push str.Aboutbitmap
push 0x52e878
call fcn.00484340
call fcn.004d0500
push eax
call fcn.004ca4b0
add esp, 0x18
push 2
call edi
mov esi, eax
mov dword [ebp - 0x1c4], esi
call fcn.004d0500
cmp dword [0x52e848], 0
mov edi, eax
je 0x49760d
mov edx, dword [ebp - 0x1c4]
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 + 0x4f4e60]
movzx eax, dl
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movd xmm5, eax
addsd xmm0, qword [ecx*8 + 0x4f4e60]
cvtdq2pd xmm5, xmm5
shr eax, 0x1f
movsd qword [ebp - 0x1c0], xmm0
addsd xmm5, qword [eax*8 + 0x4f4e60]
movsd qword [ebp - 0x1c8], xmm4
movsd qword [ebp - 0x1b8], xmm5
nop dword [eax]
movzx eax, byte [edi + 0x18a]
movsd xmm2, qword [0x4f4a50]
movd xmm3, esi
cvtdq2pd xmm3, xmm3
movd xmm1, eax
mulsd xmm3, qword [0x4e59e0]
cvtdq2pd xmm1, xmm1
mulsd xmm3, qword [0x4e59f0]
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 + 0x4f4e60]
mulsd xmm1, xmm2
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
mov eax, dword [0x52e838]
test eax, eax
je 0x4975f9
cmp dword [eax + 0xdd0], 0
je 0x4975f9
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 0x52e878
call fcn.00484a50
add esp, 0x10
test eax, eax
je 0x4975e9
mov eax, dword [0x52e838]
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x4975d1
push eax
call ebx
mov eax, dword [0x52e838]
mov dword [eax + 0xdcc], 0
push dword [0x52e878]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x52e838]
mov dword [ecx + 0xdcc], eax
movsd xmm5, qword [ebp - 0x1b8]
movsd xmm4, qword [ebp - 0x1c8]
movsd xmm0, qword [ebp - 0x1c0]
inc esi
cmp esi, 8
jl 0x4974d0
jmp 0x497616
push esi
call fcn.00484630
add esp, 4
mov ebx, dword [ebp - 0x1b0]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebx + 0xdcc]
test eax, eax
je 0x497639
push eax
call esi
mov dword [ebx + 0xdcc], 0
push dword [0x52e878]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov dword [ebx + 0xdcc], eax
jmp 0x497661
call fcn.004d0500
push eax
call fcn.004ca4b0
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 4
mov eax, dword [0x52e838]
test eax, eax
je 0x497791
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 [0x595b04]
test eax, eax
jne 0x4976a9
push eax
push 1
push 0xff
push 0xe
push 0x10
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
mov dword [0x595b04], eax
push 0xffffff
push edi
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x4976bd
push edi
call esi
mov eax, dword [0x595b00]
xor ecx, ecx
inc eax
mov edi, 4
mov dword [0x595b00], eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x595b10]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
mov ecx, dword [0x595b00]
mov dword [0x595b10], eax
mov dword [eax + ecx*4 - 4], 1
xor ecx, ecx
mov eax, dword [0x595b00]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x595b08]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
mov ecx, dword [0x595b00]
mov dword [0x595b08], eax
mov dword [eax + ecx*4 - 4], 0x2c0c0ff
xor ecx, ecx
mov eax, dword [0x595b00]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
push dword [0x595b0c]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
mov ecx, dword [0x595b00]
add esp, 0x18
mov dword [0x595b0c], eax
mov dword [eax + ecx*4 - 4], 0
mov eax, dword [0x52e838]
cmp dword [eax + 0xdcc], 0
je 0x497791
mov ecx, dword [0x595b00]
mov eax, dword [0x595b08]
push dword [eax + ecx*4 - 4]
call fcn.00484630
mov ecx, dword [0x595b0c]
mov eax, dword [0x595b00]
push dword [ecx + eax*4 - 4]
call fcn.00484630
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 [0x52e834], eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
test edi, edi
je 0x4977d8
push edi
call esi
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e2538
mov esp, ebp
pop ebp
ret