Function at 0x40524f
Capabilities:
Get common file path
Get disk information
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x417010]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
mov ebx, 0x104
push ebx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x10]
push 0
mov esi, 0x4181d0
push esi
mov dword [ebp - 0x28], eax
call fcn.00405ce0
push 0x100
push 0
mov edi, 0x417f18
push edi
call fcn.00405ce0
movzx ecx, byte [0x4181ca]
xor eax, eax
mov dword [0x47a344], eax
mov dword [0x47a348], eax
mov dword [0x47a34c], eax
xor edx, edx
mov eax, 0xfab
div ecx
mov eax, dword [0x47a324]
movzx ecx, byte [0x419283]
add esp, 0x18
movzx eax, byte [edx + eax]
sub ecx, eax
test cl, cl
jns 0x4052fb
push 0
push 0x40461f
push dword [ebp - 0x10]
push 0x66
push dword [0x4181cc]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp eax, 1
jne 0x4054cd
push 0x47a208
jmp 0x405300
push str.Shokotan
push 0x100
push edi
call fcn.004067b2
mov eax, edi
add esp, 0xc
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405313
or dword [ebp - 0x20], 0xffffffff
or dword [ebp - 0x1c], 0xffffffff
and dword [0x47a32c], 0
sub eax, edi
mov dword [0x418030], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0x4134f8
call fcn.004046df
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x20]
push eax
push str._.bmp
call fcn.004046df
xor edi, edi
inc edi
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 0x14], edi
jne 0x405382
xor ecx, ecx
cmp dword [ebp - 0x1c], ecx
je 0x405371
cmp dword [ebp - 0x20], ecx
jne 0x4053a8
mov dword [0x47a348], edi
mov dword [0x47a344], ecx
jmp 0x4054af
push 2
pop ecx
cmp dword [ebp - 0x14], ecx
jne 0x4053a8
cmp dword [ebp - 0x1c], 0
jne 0x4053a8
cmp dword [ebp - 0x20], 0
jne 0x4053a8
and dword [0x47a344], 0
mov dword [0x47a348], ecx
jmp 0x4054af
test eax, eax
jne 0x4053b1
cmp dword [ebp - 0x18], eax
je 0x4053e2
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
push dword [ebp - 0x20]
push eax
push dword [ebp - 0x10]
push dword [0x4181cc]
call fcn.0040152b
push dword [ebp - 0x18]
mov dword [0x47a32c], edi
call fcn.004049a2
push dword [ebp - 8]
call fcn.004049a2
add esp, 0x20
push 0
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_ShowWindow]
xor ecx, ecx
cmp dword [ebp - 8], ecx
je 0x405410
cmp dword [ebp - 0x18], ecx
je 0x40540b
push 2
pop eax
cmp dword [ebp - 0x14], eax
jne 0x40540b
mov dword [0x47a344], eax
jmp 0x4054af
cmp dword [ebp - 0x14], edi
je 0x40541a
cmp dword [ebp - 0x18], ecx
je 0x40546f
cmp dword [ebp - 0x14], edi
jne 0x40546f
mov dword [0x47a344], edi
jmp 0x4054af
cmp byte [0x4181d0], 0
jne 0x405436
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
xor eax, eax
mov dword [ebp - 0xc], 0x5c3a20
lea edi, [ebp - 8]
stosd dword es:[edi], eax
mov al, byte [0x4181d0]
mov byte [ebp - 0xc], al
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x405488
push 0x10
push 0x4132a0
push str.CD_DVD_BD
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
push esi
push 0x413540
push esi
push dword [ebp - 0x10]
call fcn.00404555
add esp, 0x14
test eax, eax
jne 0x405425
jmp 0x4054af
push 0x41353c
push ebx
push esi
call fcn.00406df0
add esp, 0xc
push 0
push 0x405049
push dword [ebp - 0x10]
push 0x69
push dword [0x4181cc]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x4054be
mov ecx, dword [0x47a348]
mov dword [eax], ecx
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4054cd
mov ecx, dword [0x47a34c]
mov dword [eax], ecx
mov ecx, dword [ebp - 4]
mov eax, dword [0x47a344]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00405d65
leave
ret