Function at 0x425f45
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x5c]
sub esp, 0x13c
and dword [ebp + 0x48], 0
cmp byte [ebp + 0x7c], 0
push ebx
push esi
mov esi, eax
mov eax, dword [sym.imp.MSVCR71.dll_strchr]
push edi
mov edi, dword [ebp + 0x68]
mov dword [ebp + 0x54], esi
mov byte [ebp + 0x58], 0
mov byte [ebp + 0x5b], 0
mov byte [ebp + 0x59], 0
mov byte [ebp + 0x5a], 0
je 0x42604a
cmp byte [esi], 0
mov dword [ebp + 0x40], edi
je 0x42611d
push 0x3a
push esi
call eax
pop ecx
mov ebx, eax
pop ecx
mov eax, esi
mov cl, byte [eax]
cmp cl, 0x20
je 0x425fa1
cmp cl, 9
jne 0x425fa4
inc eax
jmp 0x425f95
test ebx, ebx
mov dword [ebp + 0x44], eax
je 0x42600e
mov eax, ebx
sub eax, esi
cmp eax, 0x20
jae 0x42600e
inc eax
push esi
lea edi, [ebp - 0x64]
call fcn.00438a10
xor eax, eax
push eax
push 1
push eax
push eax
mov eax, edi
call fcn.00401cdc
add esp, 0x14
test eax, eax
je 0x42600e
lea eax, [ebx + 1]
mov dword [ebp + 0x54], eax
mov cl, byte [eax]
cmp cl, 0x20
je 0x425fe5
cmp cl, 9
jne 0x425fe8
inc eax
jmp 0x425fd9
cmp byte [eax], 0
mov dword [ebp + 0x44], eax
jne 0x425ff3
mov dword [ebp + 0x54], eax
lea esi, [ebp - 0x64]
call fcn.0040113f
dec eax
mov dword [ebp + 0x48], eax
js 0x426006
cmp eax, 0xa
jl 0x42600e
push dword [ebp + 0x68]
jmp 0x426e52
mov esi, dword [sym.imp.MSVCR71.dll__stricmp]
push 0x454174
push dword [ebp + 0x44]
call esi
test eax, eax
pop ecx
pop ecx
jne 0x42602d
mov byte [ebp + 0x58], 1
jmp 0x42611d
push str.Show
push dword [ebp + 0x44]
call esi
test eax, eax
pop ecx
pop ecx
jne 0x42611d
mov byte [ebp + 0x5b], 1
jmp 0x42611d
push 0x3a
push edi
call eax
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
jne 0x42605b
mov ebx, edi
jmp 0x426076
mov esi, edi
call fcn.0040113f
dec eax
mov dword [ebp + 0x48], eax
js 0x426e51
cmp eax, 0xa
jge 0x426e51
inc ebx
mov esi, ebx
mov al, byte [esi]
cmp al, 0x20
je 0x426082
cmp al, 9
jne 0x426085
inc esi
jmp 0x426078
mov edi, dword [sym.imp.MSVCR71.dll__stricmp]
push 0x454174
push esi
mov dword [ebp + 0x40], esi
call edi
test eax, eax
pop ecx
pop ecx
jne 0x4260e3
mov byte [ebp + 0x58], 1
mov eax, dword [ebp + 0x48]
lea ebx, [eax + eax*8]
lea ebx, [ebx*8 + 0x45db58]
mov eax, dword [ebx + 0x20]
xor edi, edi
cmp eax, edi
je 0x4260c4
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4260c4
mov dword [ebx + 0x20], edi
cmp byte [ebp + 0x5b], 0
je 0x426139
mov eax, dword [ebx + 0x20]
cmp eax, edi
je 0x426e4c
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jmp 0x426e3f
push str.Show
push esi
call edi
test eax, eax
pop ecx
pop ecx
jne 0x4260f7
mov byte [ebp + 0x5b], 1
jmp 0x4260a0
push 0
push 1
push 0
push 1
mov eax, esi
call fcn.00401cdc
add esp, 0x10
test eax, eax
je 0x4260a0
call fcn.0040113f
mov dword [ebp + 0x20], eax
mov byte [ebp + 0x59], 1
mov byte [ebp + 0x5a], 1
cmp byte [ebp + 0x7c], 0
je 0x4260a0
mov eax, dword [ebp + 0x48]
lea ebx, [eax + eax*8]
lea ebx, [ebx*8 + 0x45de28]
jmp 0x4260ad
cmp byte [ebp + 0x58], 0
jne 0x4261d2
cmp dword [ebx + 0x20], edi
je 0x4261d2
mov eax, dword [ebp + 0x54]
cmp byte [eax], 0
jne 0x4261d2
cmp byte [ebp + 0x5a], 0
jne 0x426162
mov eax, dword [ebp + 0x40]
cmp byte [eax], 0
jne 0x4261d2
cmp byte [ebp + 0x7c], 0
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
jne 0x426190
cmp byte [ebp + 0x59], 0
je 0x426190
mov eax, dword [ebp + 0x20]
cmp dword [ebx + 8], eax
je 0x426190
mov ecx, dword [ebx + 0x28]
cmp ecx, edi
mov dword [ebx + 8], eax
je 0x426190
push edi
push eax
push 0x402
push ecx
call esi
mov ecx, dword [ebp + 0x70]
cmp byte [ecx], 0
je 0x4261a6
mov eax, dword [ebx + 0x2c]
cmp eax, edi
je 0x4261a6
push ecx
push edi
push 0xc
push eax
call esi
mov eax, dword [ebp + 0x6c]
cmp byte [eax], 0
je 0x4261b7
push eax
push edi
push 0xc
push dword [ebx + 0x30]
call esi
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0
je 0x426e4c
push eax
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_SetWindowTextA]
jmp 0x426e4c
mov eax, dword [ebx + 0x20]
cmp eax, edi
je 0x4261e0
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [ebx + 0x34]
cmp eax, edi
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
je 0x4261f0
push eax
call esi
mov eax, dword [ebx + 0x38]
cmp eax, edi
je 0x4261fa
push eax
call esi
mov eax, dword [ebx + 0x3c]
cmp eax, edi
je 0x426204
push eax
call esi
mov eax, dword [ebx + 0x24]
cmp eax, edi
je 0x426211
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0x48
push edi
push ebx
call sub.MSVCR71.dll_memset
add esp, 0xc
cmp byte [ebp + 0x58], 0
jne 0x426e4c
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0
jne 0x426247
mov eax, dword [0x45fff4]
cmp eax, edi
je 0x426240
cmp byte [eax], 0
mov dword [ebp + 0x74], eax
jne 0x426247
mov dword [ebp + 0x74], 0x45282f
cmp byte [ebp + 0x7c], 0
mov eax, 0x80000000
mov ecx, 0xff000000
mov byte [ebp + 0x6b], 1
mov byte [ebp + 0x67], 1
mov byte [ebp + 0x5a], 1
mov byte [ebp + 0x5b], 0
mov dword [ebp + 0x50], 0x88c00000
mov dword [ebp + 0x14], 8
mov dword [ebp + 0x1c], eax
mov dword [ebp + 8], eax
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x24], edi
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x10], ecx
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x44], ecx
mov dword [ebx + 4], eax
je 0x4262a0
mov dword [ebx], eax
mov dword [ebx + 0x1c], eax
jmp 0x4262ad
mov dword [ebx], 0x12c
mov dword [ebx + 0x1c], 0x14
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
jne 0x4262ce
mov eax, dword [ebp + 0x6c]
cmp byte [eax], 0
jne 0x4262ce
cmp byte [ebp + 0x7c], 0
je 0x4262ce
mov dword [ebx + 0x10], edi
mov dword [ebx + 0xc], edi
jmp 0x4262dc
mov dword [ebx + 0xc], 0xa
mov dword [ebx + 0x10], 5
mov esi, dword [ebp + 0x40]
jmp 0x426654
movsx eax, byte [esi]
mov edi, dword [sym.imp.MSVCR71.dll_atoi]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x50
pop ecx
jg 0x426503
je 0x4264f0
sub eax, 0x41
je 0x4264e7
dec eax
je 0x4264c2
dec eax
je 0x42637d
sub eax, 3
je 0x426465
dec eax
dec eax
je 0x42634d
sub eax, 5
jne 0x426653
mov al, byte [esi + 1]
and byte [ebp + 0x53], 0xf7
cmp al, 0x31
jne 0x42633c
or byte [ebp + 0x52], 4
cmp al, 0x32
jne 0x426653
or byte [ebp + 0x52], 0xf
jmp 0x426653
push 4
push str.Hide
push esi
call dword [sym.imp.MSVCR71.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x42636e
mov byte [ebp + 0x5b], 1
add esi, 3
jmp 0x426653
lea eax, [esi + 1]
push eax
call edi
pop ecx
mov dword [ebx + 4], eax
jmp 0x426653
lea eax, [esi + 1]
cmp byte [eax], 0
je 0x426653
mov esi, eax
movsx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x42
pop ecx
je 0x4263b9
cmp eax, 0x54
je 0x4263b9
cmp eax, 0x57
je 0x4263b9
cmp byte [esi], 0x30
setne byte [ebp + 0x5a]
cmp byte [esi + 1], 0x30
setne byte [ebp + 0x67]
jmp 0x426465
lea eax, [esi + 1]
push eax
push 0x20
pop eax
lea edi, [ebp - 0x64]
call fcn.00438a10
pop ecx
mov edi, 0x453ea4
lea eax, [ebp - 0x64]
call fcn.00438cc6
test eax, eax
je 0x4263dd
mov byte [eax], 0
lea edi, [ebp - 0x64]
call fcn.004378e5
mov edi, eax
cmp edi, 0xffffffff
jne 0x426422
lea eax, [ebp - 0x64]
push eax
call sub.MSVCR71.dll_strlen
cmp eax, 6
pop ecx
jbe 0x4263ff
mov byte [ebp - 0x5e], 0
push 0x10
lea eax, [ebp - 0x64]
push 0
push eax
call dword [sym.imp.MSVCR71.dll_strtol]
movzx ecx, ah
mov ch, al
shr eax, 0x10
movzx eax, al
add esp, 0xc
shl ecx, 8
or ecx, eax
mov edi, ecx
movsx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x42
pop ecx
je 0x426450
cmp eax, 0x54
je 0x42644b
cmp eax, 0x57
jne 0x426453
push edi
mov dword [ebx + 0x40], edi
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [ebx + 0x3c], eax
jmp 0x426453
mov dword [ebx + 0x44], edi
jmp 0x426453
mov dword [ebp + 0x10], edi
lea eax, [ebp - 0x64]
push eax
call sub.MSVCR71.dll_strlen
mov edi, dword [sym.imp.MSVCR71.dll_atoi]
pop ecx
add esi, eax
lea eax, [esi + 1]
cmp byte [eax], 0
je 0x426653
mov esi, eax
movsx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x4d
pop ecx
je 0x4264a7
cmp eax, 0x53
jne 0x426653
lea eax, [esi + 1]
push eax
call edi
test eax, eax
pop ecx
mov dword [ebp + 0x30], eax
jge 0x426653
and dword [ebp + 0x30], 0
jmp 0x426653
lea eax, [esi + 1]
push eax
call edi
test eax, eax
pop ecx
mov dword [ebp + 0x38], eax
jge 0x426653
and dword [ebp + 0x38], 0
jmp 0x426653
mov al, byte [esi + 1]
and byte [ebp + 0x52], 0x3f
cmp al, 0x31
jne 0x4264d6
or byte [ebp + 0x52], 0x80
jmp 0x426653
cmp al, 0x32
jne 0x426653
or byte [ebp + 0x52], 0x40
jmp 0x426653
and dword [ebp + 0x14], 0xfffffff7
jmp 0x426653
lea eax, [esi + 1]
push eax
call edi
pop ecx
mov dword [ebp + 0x20], eax
mov byte [ebp + 0x59], 1
jmp 0x426653
sub eax, 0x52
je 0x42661d
dec eax
dec eax
je 0x426617
sub eax, 3
je 0x4265c4
dec eax
je 0x4265b5
dec eax
je 0x4265a6
dec eax
jne 0x426653
lea eax, [esi + 1]
cmp byte [eax], 0
je 0x426653
mov esi, eax
movsx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
sub eax, 0x42
pop ecx
je 0x426597
sub eax, 6
je 0x426597
sub eax, 0xf
je 0x42657e
dec eax
je 0x42656f
dec eax
jne 0x426653
lea eax, [esi + 1]
push eax
call edi
pop ecx
mov dword [ebx + 0x10], eax
jmp 0x426653
lea eax, [esi + 1]
push eax
call edi
pop ecx
mov dword [ebx + 0xc], eax
jmp 0x426653
cmp byte [ebp + 0x7c], 0
je 0x426653
lea eax, [esi + 1]
push eax
call edi
pop ecx
mov dword [ebx + 0x18], eax
jmp 0x426653
lea eax, [esi + 1]
push eax
call edi
pop ecx
mov dword [ebx + 0x1c], eax
jmp 0x426653
lea eax, [esi + 1]
push eax
call edi
pop ecx
mov dword [ebp + 8], eax
jmp 0x426653
lea eax, [esi + 1]
push eax
call edi
pop ecx
mov dword [ebp + 0x1c], eax
jmp 0x426653
lea eax, [esi + 1]
cmp byte [eax], 0
je 0x426653
mov esi, eax
movsx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x4d
pop ecx
je 0x426603
cmp eax, 0x53
je 0x4265ef
push esi
call edi
pop ecx
mov dword [ebx], eax
jmp 0x426653
lea eax, [esi + 1]
push eax
call edi
test eax, eax
pop ecx
mov dword [ebp + 0x34], eax
jge 0x426653
and dword [ebp + 0x34], 0
jmp 0x426653
lea eax, [esi + 1]
push eax
call edi
test eax, eax
pop ecx
mov dword [ebp + 0x18], eax
jge 0x426653
and dword [ebp + 0x18], 0
jmp 0x426653
mov byte [ebp + 0x6b], 0
jmp 0x426653
lea eax, [esi + 1]
cmp byte [eax], 0
je 0x426653
mov esi, eax
call fcn.0040113f
mov dword [ebp - 0x10], eax
lea eax, [esi + 1]
push 0x2d
push eax
call dword [sym.imp.MSVCR71.dll_strchr]
test eax, eax
pop ecx
pop ecx
je 0x426653
mov esi, eax
inc eax
cmp byte [eax], 0
je 0x426653
mov esi, eax
call fcn.0040113f
mov dword [ebp + 0x24], eax
inc esi
cmp byte [esi], 0
jne 0x4262e4
xor esi, esi
push esi
push esi
push esi
push str.DISPLAY
call dword [sym.imp.GDI32.dll_CreateDCA]
mov edi, eax
push 0x5a
push edi
mov dword [ebp + 0x3c], edi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x11
mov dword [ebp + 0x48], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
push edi
mov dword [ebp + 0x44], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0xa8]
push eax
push 0x40
push edi
call dword [sym.imp.GDI32.dll_GetTextFaceA]
lea eax, [ebp - 0xe0]
push eax
push edi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov eax, dword [ebp - 0xe0]
mov dword [ebp + 4], eax
mov eax, dword [ebx + 0x1c]
cmp eax, 1
mov edi, 0x80000000
jge 0x4266d8
cmp eax, edi
je 0x4266d8
mov ecx, dword [ebx + 0x18]
cmp ecx, 1
jge 0x4266d8
cmp ecx, edi
jne 0x4266e1
cmp eax, esi
je 0x4266e1
cmp dword [ebx + 0x18], esi
jne 0x4266e7
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
cmp byte [ebp + 0x7c], 0
je 0x4268c6
mov eax, dword [ebp + 0x54]
cmp byte [eax], 0
je 0x4268c6
cmp dword [ebx + 0x1c], esi
je 0x4268c6
push esi
push esi
push 3
push esi
push esi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp + 0x4c], eax
je 0x4268c6
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [ebp + 0x54], eax
je 0x4268bd
push eax
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp eax, esi
mov dword [ebp + 0x28], eax
je 0x4268bd
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp eax, esi
je 0x4268bd
push esi
lea ecx, [ebp + 0xc]
push ecx
push dword [ebp + 0x54]
mov dword [ebp + 0xc], esi
push eax
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4268af
lea eax, [ebp + 0x40]
push eax
push 1
push dword [ebp + 0x28]
mov dword [ebp + 0x40], esi
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jl 0x4268af
cmp dword [ebp + 0x40], esi
je 0x4268af
lea edi, [ebx + 0x24]
push edi
push 0x4516a0
push esi
push dword [ebp + 0x54]
push dword [ebp + 0x40]
call dword [sym.imp.OLEAUT32.dll_OleCreatePictureIndirect]
test eax, eax
jge 0x4267b3
mov dword [edi], esi
mov eax, dword [ebp + 0x40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebx + 0x1c]
cmp eax, 0xffffffff
jne 0x426806
cmp dword [ebx + 0x18], esi
jle 0x426806
mov eax, dword [edi]
mov ecx, dword [eax]
lea edx, [ebp + 0x54]
push edx
push eax
call dword [ecx + 0x18]
mov edi, dword [edi]
mov eax, dword [edi]
lea ecx, [ebp + 0x2c]
push ecx
push edi
call dword [eax + 0x1c]
cmp dword [ebp + 0x54], esi
je 0x42689c
fild dword [ebp + 0x2c]
fidiv dword [ebp + 0x54]
fimul dword [ebx + 0x18]
fadd qword [0x458a30]
call fcn.0044ffe0
mov dword [ebx + 0x1c], eax
jmp 0x42689c
cmp dword [ebx + 0x18], 0xffffffff
jne 0x426843
cmp eax, esi
jle 0x426843
mov eax, dword [edi]
mov ecx, dword [eax]
lea edx, [ebp + 0x54]
push edx
push eax
call dword [ecx + 0x18]
mov edi, dword [edi]
mov eax, dword [edi]
lea ecx, [ebp + 0x2c]
push ecx
push edi
call dword [eax + 0x1c]
cmp dword [ebp + 0x2c], esi
je 0x42689c
fild dword [ebp + 0x54]
fidiv dword [ebp + 0x2c]
fimul dword [ebx + 0x1c]
fadd qword [0x458a30]
call fcn.0044ffe0
jmp 0x426899
cmp eax, 0x80000000
jne 0x42686a
mov eax, dword [edi]
mov ecx, dword [eax]
lea edx, [ebp + 0x2c]
push edx
push eax
call dword [ecx + 0x1c]
push 0x9ec
push dword [ebp + 0x48]
push dword [ebp + 0x2c]
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [ebx + 0x1c], eax
cmp dword [ebx + 0x18], 0x80000000
jne 0x42689c
mov edi, dword [edi]
mov eax, dword [edi]
lea ecx, [ebp + 0x54]
push ecx
push edi
call dword [eax + 0x18]
push 0x9ec
push 0x58
push dword [ebp + 0x3c]
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push dword [ebp + 0x54]
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [ebx + 0x18], eax
cmp dword [ebx], 0x80000000
jne 0x4268af
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x18]
lea eax, [ecx + eax*2]
mov dword [ebx], eax
push dword [ebp + 0x28]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov edi, 0x80000000
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebx], edi
jne 0x4268d0
mov dword [ebx], 0x12c
cmp dword [ebx + 0x1c], edi
jne 0x4268d8
mov dword [ebx + 0x1c], esi
mov eax, dword [ebx + 4]
cmp eax, edi
jne 0x4268e4
mov eax, 0x1f4
push eax
push dword [ebx]
lea eax, [ebp - 0x20]
push esi
push esi
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
mov edi, dword [sym.imp.GDI32.dll_CreateFontA]
je 0x426a07
mov eax, dword [ebp + 0x78]
cmp byte [eax], 0
jne 0x426913
lea eax, [ebp - 0xa8]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x18]
cmp eax, esi
mov dword [ebp + 0x28], eax
jne 0x426927
mov dword [ebp + 0x28], 0x258
cmp dword [ebp + 0x38], esi
je 0x42693e
push 0x48
push dword [ebp + 0x48]
push dword [ebp + 0x38]
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
jmp 0x42694c
fild dword [ebp + 4]
fmul qword [0x458ab0]
call fcn.0044ffe0
push dword [ebp + 0x4c]
push esi
push 2
push esi
push 4
push 1
push esi
push esi
push esi
push dword [ebp + 0x28]
push esi
push esi
push esi
push eax
call edi
cmp eax, esi
mov dword [ebx + 0x34], eax
jne 0x4269be
mov eax, dword [ebp + 0x18]
cmp eax, esi
mov dword [ebp + 0x4c], eax
jne 0x42697b
mov dword [ebp + 0x4c], 0x258
cmp dword [ebp + 0x38], esi
je 0x426992
push 0x48
push dword [ebp + 0x48]
push dword [ebp + 0x38]
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
jmp 0x4269a0
fild dword [ebp + 4]
fmul qword [0x458ab0]
call fcn.0044ffe0
lea ecx, [ebp - 0xa8]
push ecx
push esi
push 2
push esi
push 4
push 1
push esi
push esi
push esi
push dword [ebp + 0x4c]
push esi
push esi
push esi
push eax
call edi
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0x34]
cmp eax, esi
jne 0x4269c8
mov eax, dword [ebp + 0x44]
push eax
push dword [ebp + 0x3c]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebx + 0xc]
lea esi, [ebp - 0x20]
lea edi, [ebp - 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add dword [ebp - 0xc], eax
sub dword [ebp - 4], eax
push 0x450
lea eax, [ebp - 0xc]
push eax
push 0xffffffffffffffff
push dword [ebp + 0x70]
push dword [ebp + 0x3c]
call dword [sym.imp.USER32.dll_DrawTextA]
mov edi, dword [sym.imp.GDI32.dll_CreateFontA]
mov dword [ebx + 0x14], eax
xor esi, esi
cmp dword [ebp + 0x30], esi
jne 0x426a16
cmp dword [ebp + 0x34], esi
jne 0x426a16
cmp dword [ebp + 0x78], esi
je 0x426a88
mov eax, dword [ebp + 0x78]
cmp byte [eax], 0
jne 0x426a24
lea eax, [ebp - 0xa8]
push eax
push esi
push 2
push esi
push 4
push 1
push esi
push esi
push esi
push dword [ebp + 0x34]
push esi
push esi
push esi
push 0x48
push dword [ebp + 0x48]
push dword [ebp + 0x30]
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
push eax
call edi
cmp eax, esi
mov dword [ebx + 0x38], eax
jne 0x426a88
cmp dword [ebp + 0x30], esi
jne 0x426a5a
cmp dword [ebp + 0x34], esi
je 0x426a88
lea eax, [ebp - 0xa8]
push eax
push esi
push 2
push esi
push 4
push 1
push esi
push esi
push esi
push dword [ebp + 0x34]
push esi
push esi
push esi
push 0x48
push dword [ebp + 0x48]
push dword [ebp + 0x30]
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
push eax
call edi
mov dword [ebx + 0x38], eax
mov ecx, dword [ebx + 0x14]
cmp ecx, esi
je 0x426a96
mov eax, dword [ebx + 0x10]
add eax, ecx
jmp 0x426a98
xor eax, eax
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0x1c]
lea edx, [eax + ecx]
mov eax, edi
neg eax
sbb eax, eax
and eax, ecx
lea ecx, [eax + edx]
add ecx, edi
cmp dword [ebx + 4], 0x80000000
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x4c], ecx
jne 0x426b17
mov eax, dword [ebp + 0x6c]
cmp byte [eax], 0
je 0x426b08
mov eax, dword [ebx + 0x38]
cmp eax, esi
jne 0x426acf
mov eax, dword [ebp + 0x44]
push eax
push dword [ebp + 0x3c]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebx + 0xc]
lea esi, [ebp - 0x20]
lea edi, [ebp - 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add dword [ebp - 0xc], eax
sub dword [ebp - 4], eax
push 0x410
lea eax, [ebp - 0xc]
push eax
push 0xffffffffffffffff
push dword [ebp + 0x6c]
push dword [ebp + 0x3c]
call dword [sym.imp.USER32.dll_DrawTextA]
mov ecx, dword [ebp + 0x4c]
jmp 0x426b0a
xor eax, eax
add eax, ecx
mov ecx, dword [ebx + 0x10]
add eax, ecx
mov dword [ebx + 4], eax
mov dword [ebp - 0x14], eax
push dword [ebp - 0x24]
push dword [ebp + 0x3c]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp + 0x3c]
call dword [sym.imp.GDI32.dll_DeleteDC]
test eax, eax
je 0x426c10
push dword [ebp + 0x14]
lea esi, [ebp - 0x20]
lea edi, [ebp - 0x44]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0
push dword [ebp + 0x50]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x44]
push eax
movsd dword es:[edi], dword [esi]
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x38]
sub esi, dword [ebp - 0x44]
sub edi, dword [ebp - 0x40]
push 0
lea eax, [ebp - 0x34]
push eax
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x30]
cmp esi, eax
jle 0x426b7e
mov esi, eax
cmp edi, ecx
jle 0x426b84
mov edi, ecx
cmp dword [ebp + 0x1c], 0x80000000
jne 0x426b9a
sub eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x34]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 8]
cmp eax, 0x80000000
jne 0x426bb0
mov eax, ecx
sub eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x30]
mov ecx, dword [0x45b170]
mov ecx, dword [ecx + 0x50]
cmp ecx, 0x63
jae 0x426bcd
mov ecx, dword [ecx*4 + 0x45e0f8]
test ecx, ecx
je 0x426bcd
mov ecx, dword [ecx]
jmp 0x426bcf
xor ecx, ecx
cmp byte [ebp + 0x6b], 0
je 0x426be1
test ecx, ecx
jne 0x426be3
mov ecx, dword [0x45d9cc]
jmp 0x426be3
xor ecx, ecx
push 0
push dword [0x45d9c4]
push 0
push ecx
push edi
push esi
mov esi, dword [ebp + 0x50]
push eax
push dword [ebp + 0x1c]
push esi
push dword [ebp + 0x74]
push str.AutoHotkey2
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov dword [ebx + 0x20], eax
jne 0x426c17
xor eax, eax
jmp 0x426e61
mov dword [ebp + 0x74], esi
and dword [ebp + 0x74], 0x80000
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
jne 0x426c2f
cmp byte [ebp + 0x6b], 0
jne 0x426c7f
mov eax, dword [0x460034]
xor edi, edi
cmp eax, edi
jne 0x426c54
push 0x8000
push edi
push edi
push 1
push 0x9f
push dword [0x45d9c4]
call dword [sym.imp.USER32.dll_LoadImageA]
cmp dword [ebp + 0x74], edi
mov dword [ebp + 0x78], eax
je 0x426c68
push eax
push edi
push 0x80
push dword [ebx + 0x20]
call esi
cmp byte [ebp + 0x6b], 0
jne 0x426c81
push dword [ebp + 0x78]
push 1
push 0x80
push dword [ebx + 0x20]
call esi
jmp 0x426c81
xor edi, edi
lea eax, [ebp - 0x20]
push eax
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [ebx], eax
lea edx, [ecx + ecx]
sub eax, edx
mov dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x426cf2
push edi
push dword [0x45d9c4]
push edi
push dword [ebx + 0x20]
push dword [ebx + 0x14]
push dword [ebp + 0x74]
push dword [ebx + 0x10]
push ecx
xor ecx, ecx
cmp byte [ebp + 0x67], cl
setne cl
or ecx, 0x50000080
push ecx
push eax
push str.static
push edi
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [ebx + 0x34]
cmp ecx, edi
mov dword [ebx + 0x2c], eax
jne 0x426cea
mov ecx, dword [ebp + 0x44]
push 1
push ecx
push 0x30
push eax
call esi
cmp byte [ebp + 0x7c], 0
jne 0x426de7
mov eax, dword [ebx + 0x1c]
cmp eax, edi
jle 0x426de7
push edi
push edi
push edi
push dword [ebx + 0x20]
push eax
push dword [ebp + 0x74]
push dword [ebp + 0xc]
push dword [ebx + 0xc]
push 0x50000001
push edi
push str.msctls_progress32
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp eax, edi
mov dword [ebx + 0x28], eax
je 0x426de7
mov edx, dword [ebp - 0x10]
cmp edx, edi
jne 0x426d44
cmp dword [ebp + 0x24], edi
je 0x426d7e
cmp edx, 0xffffffff
jle 0x426d72
mov ecx, 0x10000
cmp edx, ecx
jge 0x426d72
cmp dword [ebp + 0x24], 0xffffffff
jle 0x426d72
cmp dword [ebp + 0x24], ecx
jge 0x426d72
movzx ecx, word [ebp + 0x24]
movzx edx, dx
shl ecx, 0x10
or ecx, edx
push ecx
push edi
push 0x401
jmp 0x426d7b
push dword [ebp + 0x24]
push edx
push 0x406
push eax
call esi
cmp dword [ebp + 0x10], 0xff000000
je 0x426da7
mov eax, 0x457584
push eax
push eax
push dword [ebx + 0x28]
call fcn.004386a1
add esp, 0xc
push dword [ebp + 0x10]
push edi
push 0x409
push dword [ebx + 0x28]
call esi
mov eax, dword [ebx + 0x40]
cmp eax, 0xff000000
je 0x426dbd
push eax
push edi
push 0x2001
push dword [ebx + 0x28]
call esi
cmp byte [ebp + 0x59], 0
push edi
je 0x426dd3
push dword [ebp + 0x20]
push 0x402
push dword [ebx + 0x28]
call esi
jmp 0x426de1
push edi
push 0x408
push dword [ebx + 0x28]
call esi
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x20]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
push edi
push dword [0x45d9c4]
sub eax, dword [ebp + 0x4c]
push edi
push dword [ebx + 0x20]
push eax
push dword [ebp + 0x74]
xor eax, eax
cmp byte [ebp + 0x5a], al
push dword [ebp + 0x4c]
setne al
push dword [ebx + 0xc]
or eax, 0x50000080
push eax
push dword [ebp + 0x6c]
push str.static
push edi
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp eax, edi
mov dword [ebx + 0x30], eax
je 0x426e3b
mov ecx, dword [ebx + 0x38]
cmp ecx, edi
jne 0x426e33
mov ecx, dword [ebp + 0x44]
push 1
push ecx
push 0x30
push eax
call esi
cmp byte [ebp + 0x5b], 0
jne 0x426e4c
push 4
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_ShowWindow]
xor eax, eax
inc eax
jmp 0x426e61
push edi
mov ecx, dword [ebp + 0x64]
push 0
push str.Max_window_number_is_10.__The_current_thread_will_exit.
call fcn.00444eab
pop edi
pop esi
pop ebx
add ebp, 0x5c
leave
ret 0x1c