Function at 0x40379b
Capabilities:
Get disk information
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1b58
call fcn.004050c0
mov eax, dword [0x437230]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x1b38], eax
mov dword [ebp - 0x1b3c], ecx
mov dword [ebp - 0x1b2c], 0xc6
mov dword [ebp - 0x1b50], ebx
mov dword [0x4384c8], eax
cmp eax, ebx
jne 0x403898
push 0x103
lea eax, [ebp - 0x21b]
push ebx
push eax
mov byte [ebp - 0x21c], bl
call fcn.00405460
mov eax, dword [0x4384d4]
add esp, 0xc
push ebx
push ebx
push 3
push ebx
push ebx
mov dword [ebp - 0x1b28], eax
push 0x80000000
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push ebx
push eax
mov dword [ebp - 0x1b24], eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
lea eax, [esi + 0x40]
push eax
push 4
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push ebx
mov edi, eax
lea eax, [ebp - 0x1b30]
push eax
push esi
push edi
push dword [ebp - 0x1b24]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x1b24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
push dword [ebp - 0x1b28]
mov byte [esi + edi], bl
call dword [sym.imp.USER32.dll_SetWindowTextA]
cmp dword [0x4384d8], ebx
jne 0x403892
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 0x1b38]
push ebx
push ebx
push dword [0x4384d0]
mov dword [ebp - 0x708], eax
push ebx
push ebx
mov dword [0x4384cc], ebx
call dword [sym.imp.USER32.dll_CheckMenuRadioItem]
cmp eax, ebx
jne 0x4038ca
mov dword [ebp - 0x1b24], 0x211
mov dword [0x4384cc], ebx
jmp 0x4038d0
mov dword [ebp - 0x1b24], ebx
mov eax, dword [0x4384c4]
mov ecx, dword [ebp - 0x1b3c]
add eax, eax
mov dword [0x4384c4], eax
mov eax, dword [ebp - 0x1b38]
mov dword [ebp - 0x1b28], ecx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, dword [sym.imp.USER32.dll_LoadBitmapA]
push str.Mask
push esi
mov dword [ebp - 0x1b4c], eax
call edi
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebx
call esi
push 1
mov dword [ebp - 0x1b30], eax
call esi
push 0xc6
push dword [ebp - 0x1b38]
mov dword [ebp - 0xc], eax
call edi
mov esi, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
mov edi, eax
call esi
push edi
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
mov dword [ebp - 0x14], eax
call edi
push ebx
push ebx
push dword [ebp - 0x14]
call dword [sym.imp.GDI32.dll_GetPixel]
mov eax, 0x12c
push eax
push eax
push ebx
push ebx
call dword [sym.imp.GDI32.dll_CreateRectRgn]
push ebx
call dword [sym.imp.USER32.dll_GetDC]
push eax
mov dword [ebp - 0x14], eax
call esi
mov esi, eax
xor eax, eax
mov ecx, dword [ebp - 0x1b28]
lea ecx, [ecx + eax + 0xa]
inc eax
mov dword [ebp - 0x1b28], ecx
cmp eax, 0x19
jl 0x403970
push dword [ebp - 0xc]
push dword [ebp - 0x1b30]
push dword [ebp - 0x14]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [ebp - 0x14], eax
cmp esi, ebx
je 0x4039a7
lea eax, [esi + esi]
mov dword [ebp - 0xc], eax
jmp 0x4039aa
mov dword [ebp - 0xc], ebx
push dword [ebp - 0x14]
push esi
call edi
cmp dword [ebp - 0xc], ebx
je 0x4039cd
cmp dword [ebp - 0x14], ebx
jne 0x4039cd
mov eax, dword [ebp - 0x1b28]
sub eax, esi
add eax, 0x19
xor edx, edx
xor ecx, ecx
div ecx
jmp 0x4039d0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1b4c]
add ecx, dword [ebp - 0x1b24]
mov dword [0x4384d8], eax
mov eax, dword [ebp - 0x1b3c]
mov dword [ebp - 0x1b3c], eax
mov eax, dword [0x4384c8]
cdq
lea esi, [ecx + 1]
idiv esi
mov dword [ebp - 0x1b4c], ecx
mov dword [0x4384d0], ecx
mov dword [0x4384c4], 3
mov edi, eax
xor eax, eax
cmp edi, ebx
jle 0x403a43
mov edx, dword [ebp - 0x1b38]
mov esi, edx
imul esi, esi, 3
imul edx, edx, 9
mov dword [ebp - 0x1b24], edx
cmp dword [ebp - 0x1b24], ecx
jne 0x403a38
add dword [ebp - 0x1b3c], eax
add dword [ebp - 0x1b24], esi
inc eax
cmp eax, edi
jl 0x403a2a
mov eax, dword [0x4384d4]
push str.Score
add eax, eax
push ebx
mov dword [0x4384c0], eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [0x4384c0]
add dword [0x4384c0], 0x9ab0
lea eax, [eax + eax + 0x9c3c]
mov dword [0x4384c4], eax
lea eax, [ebp - 0x1b58]
push eax
mov dword [ebp - 0x1b58], 8
mov dword [0x4384d4], ebx
mov dword [ebp - 0x1b54], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
lea eax, [ebp - 0x1b20]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x1b14]
push ebx
push dword [ebp - 0x1b38]
add eax, 0xffffffec
push 0xc6
push ebx
push 0x14
push dword [ebp - 0x1b18]
push eax
push dword [ebp - 0x1b20]
push 0x50800000
push ebx
push str.msctls_statusbar32
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
jne 0x403aef
push 2
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
push 0x103
lea eax, [ebp - 0x21b]
push ebx
push eax
mov byte [ebp - 0x21c], bl
call fcn.00405460
add esp, 0xc
xor eax, eax
mov cl, byte [ebp + eax - 0x21c]
mov byte [ebp + eax - 0x118], cl
inc eax
cmp cl, bl
jne 0x403b0c
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x403b26
mov esi, 0x427394
movsw word es:[edi], word [esi]
xor eax, eax
mov cl, byte [ebp + eax - 0x118]
mov byte [ebp + eax - 0x320], cl
inc eax
cmp cl, bl
jne 0x403b37
lea eax, [ebp - 0x320]
mov esi, eax
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x403b52
lea edi, [ebp - 0x118]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x403b62
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x35c]
push eax
lea eax, [ebp - 0x118]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x403bc8
test byte [ebp - 0x35c], 0x10
jne 0x403bc8
push 3
mov edi, 0x427398
lea esi, [ebp - 0x330]
pop ecx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x403bc8
push 2
mov edi, 0x42739c
lea esi, [ebp - 0x330]
pop ecx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x403bc8
mov dword [ebp - 0x1b2c], ebx
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
mov cl, byte [ebp + eax - 0x21c]
mov byte [ebp + eax - 0x118], cl
inc eax
cmp cl, bl
jne 0x403bd1
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x403beb
mov esi, str..
lea eax, [ebp - 0x35c]
movsd dword es:[edi], dword [esi]
push eax
lea eax, [ebp - 0x118]
push eax
movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x403ca5
test byte [ebp - 0x35c], 0x10
je 0x403ca5
push 3
mov edi, 0x4273b0
lea esi, [ebp - 0x330]
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x403ca5
push 2
mov edi, 0x4273b4
lea esi, [ebp - 0x330]
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x403ca5
mov cl, byte [ebp + eax - 0x21c]
mov byte [ebp + eax - 0x118], cl
inc eax
cmp cl, bl
jne 0x403c4c
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x403c66
mov esi, 0x4273b8
lea eax, [ebp - 0x330]
movsw word es:[edi], word [esi]
mov edx, eax
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x403c7d
lea edi, [ebp - 0x118]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x403c8d
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push 0x103
mov dword [ebp - 0x1b24], eax
lea eax, [ebp - 0x21b]
push ebx
push eax
mov byte [ebp - 0x21c], bl
call fcn.00405460
add esp, 0xc
push 0x1a
pop edx
test byte [ebp - 0x1b24], 1
je 0x403ced
xor eax, eax
mov cl, byte [ebp + eax - 0x21c]
mov byte [ebp + eax - 0x320], cl
inc eax
cmp cl, bl
jne 0x403cda
shr dword [ebp - 0x1b24], 1
inc byte [ebp - 0x21c]
dec edx
jne 0x403ccf
mov ecx, dword [0x4384d4]
cmp ecx, ebx
je 0x403d72
fldz
fst qword [ebp - 0x1b34]
fld qword [ebp - 0x1b58]
or edx, 0xffffffff
fld qword [ebp + edx*8 - 0x1b2c]
lea eax, [edx + 2]
fadd qword [ebp - 0x1b40]
fstp qword [ebp - 0x1b40]
cmp eax, ebx
jge 0x403d3b
inc eax
fadd qword [ebp + eax*8 - 0x1b3c]
js 0x403d31
fld qword [ebp - 0x1b40]
mov edx, dword [ebp - 0x1b30]
fsub st(1)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x403d5d
fcomp st(2)
fnstsw ax
test ah, 5
jnp 0x403d17
jmp 0x403d5f
fstp st(0)
inc dword [0x4384c0]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x403d14
fstp st(1)
fstp st(0)
push dword [ebp - 0x1b2c]
mov edi, dword [sym.imp.USER32.dll_IsDlgButtonChecked]
push ecx
mov dword [ebp - 0xc], ecx
call edi
lea esi, [eax - 1]
neg esi
push 0x19
push dword [ebp - 0xc]
sbb esi, esi
inc esi
call edi
push str.Create_Device
push dword [ebp - 0x1b2c]
lea edi, [eax - 1]
push dword [ebp - 0xc]
neg edi
sbb edi, edi
inc edi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push str.Device_not_created._Choose_settings_and_click_Create_Device_then_type_to_see_results
push 0x19
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push 1
push dword [0x4384c0]
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 1
push dword [0x4384c4]
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 1
push dword [ebp - 0x1b2c]
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
cmp esi, ebx
jne 0x403e19
cmp edi, ebx
je 0x403e19
push 1
push dword [0x4384c0]
jmp 0x403e20
push ebx
push dword [0x4384c4]
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
lea eax, [ebp - 0x1ac0]
push eax
push ebx
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [0x4384c0]
mov dword [ebp - 0x1b48], eax
mov eax, dword [ebp - 0x1b2c]
mov dword [ebp - 0x1b44], eax
mov eax, dword [0x4384c4]
mov dword [ebp - 0x1b3c], eax
push 2
lea eax, [ebp - 0x1b48]
push eax
push 1
mov dword [ebp - 0x1b40], 0xa
call dword [sym.imp.GDI32.dll_DPtoLP]
lea eax, [ebp - 0x21c]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x403e87
sub eax, esi
mov esi, dword [sym.imp.GDI32.dll_TextOutA]
push eax
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x1b44]
push dword [ebp - 0x1b48]
push 1
call esi
mov dword [ebp - 0x1b30], eax
lea eax, [ebp - 0x118]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x403ebd
sub eax, edi
push eax
lea eax, [ebp - 0x118]
push eax
push dword [ebp - 0x1b3c]
push dword [ebp - 0x1b40]
push 1
call esi
mov eax, dword [ebp - 0x1b30]
add dword [0x4384c0], eax
cmp dword [0x4384d0], ebx
jg 0x403ef9
xor eax, eax
jmp 0x40469f
lea eax, [ebp - 0x1b00]
push eax
push ebx
call dword [sym.imp.USER32.dll_BeginPaint]
mov eax, dword [0x4384c4]
push 0xff00
mov dword [0x4384c0], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push ebx
push dword [0x4384c0]
push eax
push ebx
push 0xffffffffffffffff
call dword [sym.imp.GDI32.dll_FrameRgn]
test eax, eax
jle 0x403f3b
mov ecx, dword [ebp - 0x1b2c]
xor eax, eax
mov dword [eax], ecx
cmp dword [0x4384d0], ebx
jg 0x403f4f
mov eax, dword [ebp - 0x1b2c]
mov dword [ebp - 0x1b50], eax
push dword [ebp - 0x1ad0]
push ebx
call dword [sym.imp.GDI32.dll_SetMapMode]
push ebx
push 0x19
push dword [ebp - 0x1b2c]
push ebx
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
test eax, eax
jne 0x403f76
inc dword [ebp - 0x1b50]
mov esi, dword [0x4384d4]
xor edi, edi
inc edi
mov eax, esi
neg eax
mov dword [ebp - 0x1b28], edi
jne 0x40402c
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0xc]
push eax
push 0x4275e4
push edi
push ebx
push 0x428d88
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x14], eax
cmp eax, ebx
jl 0x404020
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
lea edx, [ebp - 0x320]
push edx
push eax
call dword [ecx + 0x50]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
lea edx, [ebp - 0x21c]
push edx
push eax
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
lea edx, [ebp - 0x118]
push edx
push eax
call dword [ecx + 0x24]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
lea edx, [ebp - 0x1b30]
push edx
push 0x428d78
push eax
call dword [ecx]
mov dword [ebp - 0x14], eax
cmp eax, ebx
jl 0x40400c
mov eax, dword [ebp - 0x1b30]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x404017
push str.Failed_to_create_link__n
call fcn.00404ee0
pop ecx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov esi, dword [0x4384d4]
mov edx, dword [0x4384cc]
cmp edx, ebx
jne 0x404052
push 3
pop eax
sub eax, esi
xor ecx, ecx
cmp eax, ebx
jle 0x404052
cmp dword [ebp - 0x14], ebx
jne 0x404052
shl dword [ebp - 0x1b28], 4
inc ecx
cmp ecx, eax
jl 0x404041
mov eax, dword [ebp - 0x14]
xor ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x14]
inc eax
imul eax, ecx
test eax, eax
je 0x40408e
mov ecx, dword [ebp - 0x1b28]
sub ecx, edx
lea eax, [edx + 1]
imul ecx, eax
xor eax, eax
imul ecx, ecx, 0x32
inc eax
sub eax, esi
imul eax, dword [ebp - 0x1b28]
lea edi, [edx + 1]
imul eax, edi
imul eax, eax, 0x180
jmp 0x40409a
mov ecx, dword [ebp - 0x1b30]
mov eax, dword [ebp - 0x1b30]
cmp dword [ebp - 0x14], esi
jne 0x4040ae
add edx, 2
imul edx, dword [ebp - 0x1b28]
shl edx, 5
jmp 0x4040b4
mov edx, dword [ebp - 0x1b30]
cmp dword [0x4384d0], esi
je 0x4040c7
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_HeapCreate]
jmp 0x4040d5
cmp dword [0x4384d8], ebx
jne 0x4040db
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [ebp - 0x1b24], eax
push 0x100
lea eax, [ebp - 0x114]
push eax
push 0xe
push dword [ebp - 0x1b38]
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [ebp - 0x114]
push ebx
mov dword [ebp - 0x1ae0], ebx
mov dword [ebp - 0x1adc], ebx
mov dword [ebp - 0x1ad8], ebx
mov dword [ebp - 0x1ad4], eax
mov dword [ebp - 0x1ad0], 0x41
mov dword [ebp - 0x1acc], ebx
mov dword [ebp - 0x1ac8], ebx
mov dword [ebp - 0x1ac4], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, str.data
lea edi, [ebp - 0xc]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, str.fmt
lea edi, [ebp - 0x14]
push 0x1002
movsd dword es:[edi], dword [esi]
push ebx
lea eax, [ebp - 0x320]
push eax
mov dword [ebp - 0x1b3c], 8
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x1b30], 0x10
call dword [sym.imp.WINMM.dll_mmioOpenA]
mov edi, eax
cmp edi, ebx
je 0x4041e7
push 0x20
pop eax
push eax
mov dword [ebp - 0x1ad4], eax
lea eax, [ebp - 0x1ad4]
push eax
push edi
mov dword [ebp - 0x1ad0], 0x24
mov dword [ebp - 0x1acc], 0x45564157
call dword [sym.imp.WINMM.dll_mmioCreateChunk]
mov esi, dword [sym.imp.WINMM.dll_mmioWrite]
push 4
lea eax, [ebp - 0x14]
push eax
push edi
call esi
push 4
lea eax, [ebp - 0x1b30]
push eax
push edi
call esi
push 2
lea eax, [ebp - 0x1b3c]
push eax
push edi
call esi
push 4
lea eax, [ebp - 0xc]
push eax
push edi
call esi
push 4
lea eax, [ebp - 0x1b28]
push eax
push edi
call esi
push ebx
push edi
call dword [sym.imp.WINMM.dll_mmioClose]
mov esi, dword [0x4384d4]
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x19
push dword [ebp - 0x1b2c]
push ebx
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
mov eax, dword [0x4384d4]
push 0xffffffffffffffeb
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov esi, str.Alloc
lea edi, [ebp - 0x110]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x1b10]
push eax
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx eax, word [ebp - 0x1b0c]
movzx ecx, word [ebp - 0x1b10]
xor esi, esi
inc eax
inc esi
xor edx, edx
shr ecx, 2
cmp ecx, ebx
jbe 0x404251
shl esi, 4
inc edx
cmp edx, 3
jl 0x404241
cmp eax, ebx
je 0x40426b
push 4
lea eax, [ebp - 0x114]
push str.Heap
push eax
call fcn.00404db0
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
push str.kernel32
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
imul esi, esi, 0x19
push esi
push ebx
push dword [ebp - 0x1b24]
call eax
mov dword [ebp - 0x1b30], eax
mov ecx, dword [ebp - 0x1b30]
add ecx, dword [0x4384cc]
imul ecx, dword [0x4384d0]
cmp dword [ebp - 0x1b30], ecx
jne 0x4042bd
mov eax, dword [0x4384c0]
add dword [0x4384c4], eax
cmp dword [ebp - 0x1b24], ebx
je 0x403ef2
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x604]
push 0x4274f4
push eax
call fcn.00404d90
pop ecx
pop ecx
cmp eax, ebx
je 0x4042f9
xor eax, eax
mov cl, byte [ebp + eax - 0x604]
inc eax
cmp cl, bl
jne 0x4042e8
jmp 0x404386
lea eax, [ebp - 0x604]
push eax
lea eax, [ebp - 0xed8]
push eax
lea eax, [ebp - 0x12c0]
push str._s_s
push eax
call fcn.00404980
lea eax, [ebp - 0x12c0]
push 0x427500
push eax
call fcn.00404d90
add esp, 0x18
mov esi, eax
xor eax, eax
mov cl, byte [ebp + eax - 0xed8]
mov byte [ebp + eax - 0xaf0], cl
inc eax
cmp cl, bl
jne 0x404330
lea eax, [ebp - 0xed8]
push eax
call fcn.00404770
pop ecx
cmp esi, ebx
jne 0x404386
lea eax, [ebp - 0x708]
push 0x427504
push eax
call fcn.00404d90
pop ecx
pop ecx
cmp eax, ebx
jne 0x404386
lea eax, [ebp - 0x604]
push eax
lea eax, [ebp - 0xaf0]
push str.Could_not_find_file__s_or_ImageJ.cfg._Please_nreinstall_the_application.
push eax
call fcn.00404980
add esp, 0xc
push ebx
mov dword [ebp - 0x1b24], ebx
mov dword [ebp - 0x1b28], ebx
mov dword [ebp - 0x1b3c], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x1b24]
push eax
push 0x428d58
push 1
push ebx
push 0x428d68
call dword [sym.imp.ole32.dll_CoCreateInstance]
push 3
pop eax
lea edx, [ebp - 0x1b28]
push edx
mov word [ebp - 0x1ad0], ax
mov eax, dword [ebp - 0x1b24]
mov ecx, dword [eax]
sub esp, 0x10
mov dword [ebp - 0x1ac8], 2
mov edi, esp
lea esi, [ebp - 0x1ad0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x24]
mov eax, dword [ebp - 0x1b28]
mov ecx, dword [eax]
lea edx, [ebp - 0x1b3c]
push edx
push 0x428d48
push eax
call dword [ecx]
mov ecx, dword [ebp - 0x1b4c]
cmp ecx, dword [ebp - 0x1b24]
jle 0x40441c
mov edi, dword [0x4384d8]
jmp 0x40442c
mov edi, dword [ebp - 0x1b2c]
cmp eax, ebx
jne 0x40442c
mov edi, dword [ebp - 0x1b30]
mov eax, dword [0x4384d4]
mov ecx, dword [ebp - 0x1b4c]
lea esi, [eax + ecx]
imul esi, esi, 3
add esi, dword [ebp - 0x1b50]
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x1b28], ebx
je 0x40445f
push esi
lea eax, [eax + 0x4275f8]
push eax
push edi
call fcn.004050f0
add esp, 0xc
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
movzx eax, word [ebp - 0x1b2c]
push eax
push str.comctl32
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
cmp dword [0x4384d4], ebx
jne 0x4044a2
cmp dword [ebp - 0x1b3c], ebx
je 0x4044a2
mov eax, dword [ebp - 0x1b50]
add eax, 0x86
push eax
push esi
push edi
call fcn.004036c5
lea eax, [ebp - 0x1b38]
push ebx
mov dword [edi + 1], eax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
mov dword [ebp - 0x1b24], 0xa
mov dword [ebp - 0x1b3c], 0x10
push ebx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, eax
push esi
lea eax, [ebp - 0x1ad0]
push eax
push edi
call dword [sym.imp.USER32.dll_FillRect]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
dec dword [ebp - 0x1b3c]
jne 0x4044c8
dec dword [ebp - 0x1b24]
jne 0x4044be
push edi
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
xor eax, eax
mov esi, 0x206
push esi
mov word [ebp - 0x424], ax
lea eax, [ebp - 0x422]
push ebx
push eax
call fcn.00405460
add esp, 0xc
lea eax, [ebp - 0x1b58]
push eax
lea eax, [ebp - 0x1b20]
push eax
xor edi, edi
lea eax, [ebp - 0x1b30]
inc edi
push eax
mov dword [ebp - 0x1b20], edi
mov dword [ebp - 0x1b1c], ebx
mov dword [ebp - 0x1b18], ebx
mov dword [ebp - 0x1b14], ebx
call sub.gdiplus.dll_GdiplusStartup
cmp eax, ebx
jne 0x404595
lea eax, [ebp - 0x1b3c]
push eax
lea eax, [ebp - 0x424]
push eax
mov dword [ebp - 0x1b3c], ebx
call sub.gdiplus.dll_GdipCreateBitmapFromFile
mov eax, dword [ebp - 0x1b3c]
push ebx
lea ecx, [ebp - 0x1b24]
push ecx
push eax
mov dword [ebp - 0x1acc], eax
call sub.gdiplus.dll_GdipCreateHBITMAPFromBitmap
push dword [ebp - 0x1acc]
call sub.gdiplus.dll_GdipDisposeImage
push 0x103
lea eax, [ebp - 0x21b]
push ebx
push eax
mov byte [ebp - 0x21c], bl
call fcn.00405460
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1acc], eax
mov eax, dword [0x4384c0]
add esp, 0xc
mov dword [ebp - 0x1ae0], eax
lea eax, [ebp - 0x1af0]
push eax
push ebx
push ebx
push ebx
mov dword [ebp - 0x1af0], 0x30
mov dword [ebp - 0x1aec], 0x17
mov dword [ebp - 0x1ae8], ebx
mov dword [ebp - 0x1ae4], ebx
mov dword [ebp - 0x1ac8], 0x104
mov dword [ebp - 0x1adc], ebx
call dword [sym.imp.USER32.dll_InsertMenuItemA]
xor eax, eax
push esi
mov word [ebp - 0x424], ax
lea eax, [ebp - 0x422]
push ebx
push eax
call fcn.00405460
add esp, 0xc
mov dword [ebp - 0x1b20], edi
mov dword [ebp - 0x1b1c], ebx
mov dword [ebp - 0x1b18], ebx
mov dword [ebp - 0x1b14], ebx
cmp dword [0x4384dc], ebx
jne 0x404665
lea eax, [ebp - 0x1b58]
push eax
lea eax, [ebp - 0x1b20]
push eax
lea eax, [ebp - 0x1b30]
push eax
call sub.gdiplus.dll_GdiplusStartup
mov dword [0x4384dc], edi
cmp eax, ebx
jne 0x40469a
lea eax, [ebp - 0x1b3c]
push eax
push ebx
push ebx
mov dword [ebp - 0x1b3c], ebx
call sub.gdiplus.dll_GdipCreateBitmapFromHBITMAP
mov esi, dword [ebp - 0x1b3c]
push ebx
lea eax, [ebp - 0x1ad0]
push eax
lea eax, [ebp - 0x424]
push eax
push esi
call sub.gdiplus.dll_GdipSaveImageToFile
push esi
call sub.gdiplus.dll_GdipDisposeImage
mov ebp, dword [ebp - 0x14]
call ebp
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004050b0
leave
ret 0x10