Function at 0x4305e0
Capabilities:
Capture screenshot

Disassembly:
push ecx
push ebp
mov ebp, dword [esp + 0xc]
push esi
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x10]
push eax
push ebp
call fcn.0042f2a0
mov ecx, dword [esi + 0x1c]
add esp, 8
test ecx, ecx
je 0x43030f
mov eax, dword [esi + 0x18]
test eax, eax
mov dword [esp + 0x14], eax
je 0x43030f
mov edx, dword [esi + 8]
cmp edx, 5
push ebx
mov ebx, dword [0x4d7468]
push edi
jne 0x430205
mov edi, dword [0x4d76d0]
imul eax, ebx
mov edx, ecx
imul edx, edi
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x1c]
setle cl
add ecx, 3
mov edx, ecx
mov ecx, dword [esi + 0x1c]
jmp switch.0x00430214
cmp edx, 4
ja case.default.0x430214
mov edi, dword [0x4d76d0]
jmp dword [edx*4 + 0x430314]
mov eax, dword [esi + 0xc]
push eax
push ebx
push edi
push 0
push 0
push esi
push ebp
call fcn.004300a0
add esp, 0x1c
pop edi
pop ebx
pop esi
pop ebp
pop ecx
ret
mov eax, ecx
imul eax, edi
cdq
idiv dword [esp + 0x1c]
mov edx, dword [esi + 0xc]
push edx
mov ecx, eax
mov eax, ebx
sub eax, ecx
push ecx
cdq
push edi
sub eax, edx
sar eax, 1
push eax
push 0
push esi
push ebp
call fcn.004300a0
add esp, 0x1c
pop edi
pop ebx
pop esi
pop ebp
pop ecx
ret
imul eax, ebx
cdq
idiv ecx
mov ecx, eax
mov eax, dword [esi + 0xc]
push eax
mov eax, edi
sub eax, ecx
push ebx
cdq
push ecx
sub eax, edx
push 0
sar eax, 1
push eax
push esi
push ebp
call fcn.004300a0
add esp, 0x1c
pop edi
pop ebx
pop esi
pop ebp
pop ecx
ret
xor ebp, ebp
test edi, edi
jle case.default.0x430214
xor edi, edi
test ebx, ebx
jle 0x4302cd
lea esp, [esp]
mov edx, dword [esi]
mov eax, dword [esi + 0x18]
push 0xcc0020
push 0
push 0
push edx
push ecx
mov ecx, dword [esp + 0x2c]
push eax
push edi
push ebp
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esi + 0x1c]
mov ebx, dword [0x4d7468]
add edi, ecx
cmp edi, ebx
jl 0x4302a0
add ebp, dword [esi + 0x18]
cmp ebp, dword [0x4d76d0]
jl 0x430293
pop edi
pop ebx
pop esi
pop ebp
pop ecx
ret
mov eax, dword [esi]
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
push 0xcc0020
push 0
push 0
push eax
push edx
mov eax, ebx
sub eax, edx
cdq
sub eax, edx
sar eax, 1
push ecx
push eax
mov eax, edi
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
push eax
push ebp
call dword [sym.imp.GDI32.dll_BitBlt]
pop edi
pop ebx
pop esi
pop ebp
pop ecx
ret
sub esp, 0x34
push esi
mov esi, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x44]
mov eax, dword [edi + 0x10]
push eax
push esi
call fcn.0042f2a0
add esp, 8
cmp dword [edi], 0
je 0x4305d3
mov edx, dword [0x4d2994]
push ebx
lea ecx, [esp + 0xc]
push ecx
push edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call dword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov ebx, dword [sym.imp.GDI32.dll_SetWindowOrgEx]
push 0
push eax
push ecx
push esi
call ebx
mov eax, dword [0x4d2994]
lea edx, [esp + 0x20]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
push ecx
push edx
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [0x4d76d4]
test eax, eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
je 0x43059a
lea edx, [esp + 0x14]
push edx
push fcn.00430330
push 0
push 0
call eax
push 0
push 0
push 0
push esi
call ebx
pop ebx
pop edi
pop esi
add esp, 0x34
ret
mov eax, dword [0x4d2e1c]
mov ecx, dword [0x4d2e24]
push eax
push ecx
push 0
push 0
lea edx, [esp + 0x40]
push edx
call dword [sym.imp.USER32.dll_SetRect]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
call fcn.00430330
push 0
push 0
push 0
push esi
call ebx
pop ebx
pop edi
pop esi
add esp, 0x34
ret
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
sub eax, 0
je 0x430608
sub eax, 1
je 0x4305ff
sub eax, 1
jne 0x430614
mov dword [esp + 8], ecx
jmp 0x4304e0
mov dword [esp + 8], ecx
jmp 0x4301a0
mov edx, dword [ecx + 0x10]
mov dword [esp + 8], edx
jmp fcn.0042f2a0
ret