Function at 0x4054f0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, dword [0x4543e4]
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 0x40561a
je 0x4055f3
cmp ebx, 0x110
ja 0x4055a6
je 0x405586
mov eax, ebx
sub eax, 2
je 0x40556d
sub eax, 3
je 0x405548
sub eax, 0xf
je 0x40554e
jmp case.0x405625.32772
push ecx
call fcn.004051f0
push edi
call fcn.004050d0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.0042e4c9
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 0x405670
mov ecx, esi
call fcn.00404660
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.0042e4c9
mov esp, ebp
pop ebp
ret 0xc
mov eax, ebx
sub eax, 0x111
je 0x4055d6
sub eax, 0x27
jne case.0x405625.32772
push edi
mov eax, ecx
mov edi, esi
call fcn.00428430
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.0042e4c9
mov esp, ebp
pop ebp
ret 0xc
push ecx
push edi
mov ecx, esi
call fcn.00404ea0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.0042e4c9
mov esp, ebp
pop ebp
ret 0xc
call fcn.00405300
mov eax, dword [esp + 0x10]
push eax
push edi
push ebx
mov ecx, esi
call fcn.00404420
mov ecx, dword [esp + 0x34]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042e4c9
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebx - 0x8001]
cmp eax, 5
ja case.0x405625.32772
jmp dword [eax*4 + 0x405758]
mov ebx, edi
call fcn.004053a0
mov ebx, dword [ebp + 8]
jmp case.0x405625.32772
push ecx
mov eax, edi
mov edx, esi
call fcn.00405440
jmp case.0x405625.32772
push edi
push esi
mov ecx, 0x3ed
call fcn.00404350
jmp case.0x405625.32772
mov eax, edi
mov ecx, esi
call fcn.00405250
jmp case.0x405625.32772
call fcn.004054b0
cmp ebx, 0x110
ja 0x40572d
je 0x405696
mov eax, ebx
sub eax, 2
je 0x40567f
dec eax
je 0x4056d7
jmp 0x4055f8
mov eax, dword [esi + 0x38]
test eax, eax
je 0x4055f8
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x4055f8
mov eax, dword [0x456d48]
call fcn.0040a020
test al, al
je 0x4056d7
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 0x4055f8
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 0x4055f8
cmp ebx, 0x111
jne 0x4055f8
mov eax, dword [esi + 0x38]
test eax, eax
je 0x4055f8
cmp dword [esp + 0x10], eax
jne 0x4055f8
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]