Function at 0x40580e
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, dword [0x4563e4]
xor eax, esp
mov dword [esp + 0x28], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
mov ecx, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
cmp ebx, 0x8000
ja 0x4056da
je 0x4056b3
cmp ebx, 0x110
ja 0x405666
je 0x405646
mov eax, ebx
sub eax, 2
je 0x40562d
sub eax, 3
je 0x405608
sub eax, 0xf
je 0x40560e
jmp case.0x4056e5.32772
push ecx
call fcn.004052b0
push edi
call fcn.00405190
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.0042ee49
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi + 0x6c]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esi + 0x70]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x405730
mov ecx, esi
call fcn.004046c0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.0042ee49
mov esp, ebp
pop ebp
ret 0xc
mov eax, ebx
sub eax, 0x111
je 0x405696
sub eax, 0x27
jne case.0x4056e5.32772
push edi
mov eax, ecx
mov edi, esi
call fcn.00405130
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.0042ee49
mov esp, ebp
pop ebp
ret 0xc
push ecx
push edi
mov ecx, esi
call fcn.00404f00
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.0042ee49
mov esp, ebp
pop ebp
ret 0xc
call fcn.004053c0
mov eax, dword [esp + 0x10]
push eax
push edi
push ebx
mov ecx, esi
call fcn.00404480
mov ecx, dword [esp + 0x34]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042ee49
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebx - 0x8001]
cmp eax, 5
ja case.0x4056e5.32772
jmp dword [eax*4 + 0x405818]
mov ebx, edi
call fcn.00405460
mov ebx, dword [ebp + 8]
jmp case.0x4056e5.32772
push ecx
mov eax, edi
mov edx, esi
call fcn.00405500
jmp case.0x4056e5.32772
push edi
push esi
mov ecx, 0x3ed
call fcn.004043b0
jmp case.0x4056e5.32772
mov eax, edi
mov ecx, esi
call fcn.00405310
jmp case.0x4056e5.32772
call fcn.00405570
cmp ebx, 0x110
ja 0x4057ed
je 0x405756
mov eax, ebx
sub eax, 2
je 0x40573f
dec eax
je 0x405797
jmp 0x4056b8
mov eax, dword [esi + 0x38]
test eax, eax
je 0x4056b8
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x4056b8
mov eax, dword [0x458dc8]
call fcn.00409ee0
test al, al
je 0x405797
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edx, dword [esi + 4]
push eax
push 0
push edx
push 0x1e
push 0x5a
push 0
push 0
push 0x90000000
push str.Exit
push str.Button
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [esi + 0x38], eax
cmp dword [esi + 0x38], 0
je 0x4056b8
mov ecx, dword [esi + 4]
mov ebx, dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x24]
push eax
push ecx
call ebx
mov eax, dword [esi + 0x38]
lea edx, [esp + 0x14]
push edx
push eax
call ebx
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
push 0x15
push 0
push 0
lea eax, [ecx + edx - 0xe]
mov ecx, dword [esp + 0x30]
mov edx, dword [esi + 0x38]
push eax
push ecx
push 0
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ebx, dword [ebp + 8]
jmp 0x4056b8
cmp ebx, 0x111
jne 0x4056b8
mov eax, dword [esi + 0x38]
test eax, eax
je 0x4056b8
cmp dword [esp + 0x10], eax
jne 0x4056b8
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]