Function at 0x42e8d0
Capabilities:
Capture screenshot
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x44
push ebx
push ebp
push esi
xor ebp, ebp
cmp eax, ebp
push edi
mov esi, ecx
jge 0x42e8e7
mov dword [esp + 0x60], ebp
cmp dword [esp + 0x64], ebp
jge 0x42e8f1
mov dword [esp + 0x64], ebp
cmp dword [esp + 0x68], ebp
jge 0x42e8fb
mov dword [esp + 0x68], ebp
cmp dword [esp + 0x6c], ebp
jge 0x42e905
mov dword [esp + 0x6c], ebp
mov ebx, dword [esp + 0x58]
cmp ebx, ebp
je 0x42ebd4
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0xc]
mov ecx, eax
imul ecx, ebx
cmp ecx, edx
je 0x42ebd4
cmp eax, 1
jne 0x42e94e
cmp dword [esp + 0x60], ebp
jne 0x42e94e
cmp dword [esp + 0x64], ebp
jne 0x42e94e
cmp dword [esp + 0x70], ebp
je 0x42e94e
mov edi, dword [esp + 0x5c]
push ebp
push edi
push ebx
mov ecx, esi
call fcn.0042b1b0
jmp 0x42ebd8
push ebp
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ecx, dword [esi + 0x10]
mov ebp, eax
mov eax, dword [esi + 0x14]
imul eax, ebx
push 0x20
push ecx
push eax
call fcn.00428c50
add esp, 0xc
mov ebx, eax
push ebx
push ebp
mov dword [esp + 0x40], ebx
call dword [sym.imp.GDI32.dll_SelectObject]
lea edx, [esp + 0x3c]
push edx
push 0x18
mov edi, eax
push ebx
mov dword [esp + 0x40], edi
call dword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
cdq
idiv ecx
test ecx, ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], eax
jle 0x42eb63
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
sub ebx, ecx
sub ebx, edi
mov edi, eax
mov eax, ecx
mov ecx, dword [esp + 0x64]
sub edi, eax
sub edi, ecx
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ecx
lea ecx, [eax*4]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
jmp 0x42e9f0
mov eax, dword [esp + 0x60]
lea ebx, [ebx]
test eax, eax
je 0x42ea1f
mov eax, dword [esp + 0x14]
push 0xcc0020
push 0
push eax
mov ecx, esi
call fcn.00427b40
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x20]
push ecx
push edx
push 0
push eax
push ebp
call dword [sym.imp.GDI32.dll_BitBlt]
test ebx, ebx
jle 0x42ead4
test edi, edi
jle 0x42ead4
mov eax, dword [esp + 0x70]
test eax, eax
je 0x42ea77
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 0x1c]
xor eax, eax
mov ax, word [esi + 0x10]
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x20]
add edx, ecx
push eax
push ebx
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esi + 0x2c]
add eax, edx
cmp ebx, edi
push edi
push eax
jle 0x42ea6d
call fcn.00427f90
add esp, 0x20
jmp 0x42ead4
call fcn.00427cb0
add esp, 0x20
jmp 0x42ead4
mov eax, ebx
cdq
idiv edi
inc eax
test eax, eax
jle 0x42ead4
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x14]
add edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
lea ebx, [edx + ecx]
mov dword [esp + 0x20], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x2c]
push 0xcc0020
push 0
push eax
mov ecx, esi
call fcn.00427b40
mov ecx, dword [esi + 0x10]
push eax
push ecx
push edi
push 0
push ebx
push ebp
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esp + 0x20]
add ebx, edi
dec eax
mov dword [esp + 0x20], eax
jne 0x42eaa0
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x64]
test eax, eax
je 0x42eb17
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
push 0xcc0020
sub edx, eax
add edx, ecx
push 0
push edx
mov ecx, esi
call fcn.00427b40
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esi + 0x10]
push eax
mov eax, dword [esp + 0x78]
push eax
sub ecx, eax
mov eax, dword [esp + 0x70]
push 0
add ecx, eax
push ecx
push ebp
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
shl eax, 2
add edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], edx
add dword [esp + 0x14], eax
mov edx, dword [esp + 0x1c]
shl eax, 2
add edx, eax
mov eax, dword [esi + 0x14]
inc ecx
cmp ecx, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
jl 0x42e9e6
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov eax, dword [esi + 0x54]
test eax, eax
jne 0x42eb7a
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x50]
push edx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x42eb81
mov ecx, esi
call fcn.00427af0
mov ecx, dword [esi + 0x30]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x54]
test eax, eax
jne 0x42eba4
mov edx, dword [esi + 0x50]
push edx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov dword [esi + 0x50], ebp
mov dword [esi + 0x34], edi
jmp 0x42ebb3
push edi
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
push ebp
call dword [sym.imp.GDI32.dll_DeleteDC]
lea eax, [esi + 0x18]
push eax
push 0x18
push ebx
mov dword [esi + 0x30], ebx
call dword [sym.imp.GDI32.dll_GetObjectW]
mov ecx, dword [esi + 0x14]
imul ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x58]
mov dword [esi + 0xc], ecx
xor ebp, ebp
mov edi, dword [esp + 0x5c]
cmp edi, ebp
je 0x42ede8
cmp edi, dword [esi + 0x10]
je 0x42ede8
cmp dword [esi + 0x14], 1
jne 0x42ec1a
cmp dword [esp + 0x68], ebp
jne 0x42ec1a
cmp dword [esp + 0x6c], ebp
jne 0x42ec1a
cmp dword [esp + 0x74], ebp
je 0x42ec1a
push ebp
push edi
push ebx
mov ecx, esi
call fcn.0042b1b0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x44
ret 0x20
push ebp
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0x20
mov ebx, eax
mov eax, dword [esi + 0xc]
push edi
push eax
call fcn.00428c50
add esp, 0xc
mov ebp, eax
push ebp
push ebx
mov dword [esp + 0x78], ebp
call dword [sym.imp.GDI32.dll_SelectObject]
lea edx, [esp + 0x3c]
push edx
push 0x18
push ebp
mov dword [esp + 0x64], eax
call dword [sym.imp.GDI32.dll_GetObjectW]
push 0xcc0020
push 0
push 0
mov ecx, esi
call fcn.00427b40
mov ebp, dword [esp + 0x74]
push eax
mov eax, dword [esi + 0xc]
push ebp
push eax
push 0
push 0
push ebx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x6c]
mov eax, edi
mov edi, dword [esi + 0x10]
sub eax, ebp
sub eax, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x6c]
sub edi, ecx
sub edi, ebp
test eax, eax
jle 0x42ed4d
test edi, edi
jle 0x42ed4d
mov edx, dword [esp + 0x74]
test edx, edx
je 0x42ecff
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov cx, word [esi + 0xc]
push edx
mov edx, dword [esi + 0x1c]
push edx
mov edx, dword [esp + 0x58]
push eax
cmp eax, edi
mov eax, dword [esp + 0x54]
push ecx
jle 0x42ece1
imul eax, ebp
add eax, edx
push eax
push edi
mov edi, dword [esi + 0x2c]
push ecx
mov ecx, dword [esi + 0x24]
imul ecx, ebp
add ecx, edi
push ecx
call fcn.00427f90
add esp, 0x20
jmp 0x42ed4d
imul eax, ebp
add eax, edx
push eax
push edi
mov edi, dword [esi + 0x2c]
push ecx
mov ecx, dword [esi + 0x24]
imul ecx, ebp
add ecx, edi
push ecx
call fcn.00427cb0
add esp, 0x20
jmp 0x42ed4d
cdq
idiv edi
inc eax
test eax, eax
jle 0x42ed4d
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
jmp 0x42ed15
mov ecx, dword [esp + 0x68]
push 0xcc0020
push ecx
push 0
mov ecx, esi
call fcn.00427b40
mov edx, dword [esi + 0xc]
push eax
mov eax, dword [esp + 0x70]
push edi
push edx
push eax
push 0
push ebx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
add ecx, edi
dec eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
jne 0x42ed11
mov ecx, dword [esi + 0x10]
push 0xcc0020
sub ecx, ebp
push ecx
push 0
mov ecx, esi
call fcn.00427b40
mov edi, dword [esp + 0x68]
mov edx, dword [esi + 0xc]
push eax
push ebp
push edx
mov eax, edi
sub eax, ebp
push eax
push 0
push ebx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esi + 0x54]
test eax, eax
jne 0x42ed90
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x50]
push ecx
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x42ed97
mov ecx, esi
call fcn.00427af0
mov eax, dword [esi + 0x30]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x54]
test eax, eax
jne 0x42edbe
mov ecx, dword [esi + 0x50]
push ecx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [esp + 0x58]
mov dword [esi + 0x50], ebx
mov dword [esi + 0x34], edx
jmp 0x42edd1
mov eax, dword [esp + 0x58]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [esp + 0x70]
lea ecx, [esi + 0x18]
push ecx
push 0x18
push eax
mov dword [esi + 0x30], eax
call dword [sym.imp.GDI32.dll_GetObjectW]
mov dword [esi + 0x10], edi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x44
ret 0x20