Function at 0x414070
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x43b978
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
push ebp
push esi
push edi
mov edi, ecx
push 0x218
call fcn.0040bed0
push 0x218
mov ecx, edi
call fcn.0040bfa0
mov al, byte [edi + 0x473a]
mov esi, dword [esp + 0x8c]
mov cx, word [edi + 0x4734]
mov dl, byte [edi + 0x473b]
mov byte [esp + 0x4c], al
mov ax, word [edi + 0x4736]
mov word [esp + 0x48], ax
mov eax, dword [esp + 0x94]
mov word [esp + 0x50], cx
mov cl, byte [edi + 0x473c]
mov byte [esp + 0x44], dl
mov dx, word [edi + 0x4738]
lea ebp, [esi + eax]
mov byte [esp + 0x3c], cl
cmp esi, ebp
mov word [esp + 0x40], dx
mov dword [esp + 0x10], esi
mov dword [esp + 0x60], ebp
jge 0x4143a7
mov ecx, dword [esp + 0x90]
push ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x38], eax
lea edx, [ebx + ecx]
mov dword [esp + 0x5c], edx
lea eax, [edi + 0x4fc]
lea ecx, [esp + 0x68]
push eax
call fcn.00408db0
mov eax, dword [edi + 0x3d34]
mov ecx, dword [edi + 0x3d38]
push eax
push ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0x8c], 0
call fcn.00408e20
mov edx, dword [edi + 0x3d3c]
mov eax, dword [edi + 0x3d38]
push edx
push eax
lea ecx, [esp + 0x74]
call fcn.00408e60
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x84], 2
cmp ebx, eax
mov dword [esp + 0x90], ebx
jge 0x414366
mov eax, dword [esp + 0x94]
mov dword [esp + 0x34], eax
jmp 0x414195
mov eax, dword [esp + 0x34]
mov ebp, 0x10
cmp eax, ebp
mov ebx, ebp
jge 0x4141a2
mov ebx, eax
mov eax, dword [esp + 0x38]
cmp eax, 0x10
jge 0x4141ad
mov ebp, eax
lea ecx, [esp + 0x58]
push 1
push ecx
mov ecx, edi
call fcn.0040bbc0
mov eax, dword [esp + 0x58]
test al, 1
je 0x4143bb
mov edx, ebp
mov eax, dword [edi + 0x4dc]
imul edx, ebx
shl edx, 1
push edx
push eax
mov ecx, edi
call fcn.0040bbc0
mov ecx, dword [edi + 0x4dc]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], esi
lea ecx, [eax + ebp]
cmp eax, ecx
mov dword [esp + 0x30], ecx
jge 0x41432f
mov ebp, dword [esp + 0x90]
lea eax, [ebx + ebp]
mov dword [esp + 0x2c], eax
cmp ebp, eax
jge 0x414322
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x4c]
and edx, 0xff
and ecx, 0xff
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x50]
and edx, 0xff
and eax, 0xffff
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x54]
and ebx, 0xffff
and edx, 0xffff
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x28], edx
jmp 0x414273
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x18]
mov si, word [edx]
and esi, 0xffff
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x20]
and edx, eax
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv dword [esp + 0x98]
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x24]
shr esi, cl
mov ecx, dword [esp + 0x28]
and edx, ebx
and esi, ecx
and eax, 0xff
or ah, 2
shl eax, 8
mov dword [esp + 0x60], eax
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv ebx
mov edx, dword [esp + 0x60]
and eax, 0xff
or edx, eax
mov eax, esi
shl eax, 8
shl edx, 8
sub eax, esi
mov dword [esp + 0x60], edx
cdq
idiv ecx
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x3c]
mov edx, dword [edi + 0x3d38]
and eax, 0xff
or ecx, eax
push ecx
push esi
push ebp
push edx
call dword [sym.imp.GDI32.dll_SetPixelV]
mov eax, dword [esp + 0x18]
add eax, 2
inc ebp
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
cmp ebp, eax
jl 0x414268
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x90]
inc esi
cmp esi, ecx
mov dword [esp + 0x3c], esi
jl 0x41420c
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x5c]
add eax, 0x10
sub edx, 0x10
cmp eax, ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x34], edx
jl 0x414191
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x64]
lea ecx, [esp + 0x6c]
call fcn.00408e90
lea ecx, [esp + 0x74]
call fcn.00408e40
lea ecx, [esp + 0x68]
mov dword [esp + 0x84], 0xffffffff
call fcn.00408dd0
mov ecx, dword [esp + 0x38]
add esi, 0x10
sub ecx, 0x10
cmp esi, ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], ecx
jl 0x414120
pop ebx
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x78
ret 0x10
test al, 0x20
je 0x414584
lea eax, [esp + 0x10]
push 2
push eax
mov ecx, edi
call fcn.0040bbc0
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov cl, ah
mov edx, dword [edi + 0x4dc]
mov ch, al
mov eax, ecx
mov ecx, edi
mov dword [esp + 0x10], eax
and eax, 0xffff
push eax
push edx
call fcn.0040bbc0
mov ecx, ebp
lea eax, [edi + 0x5d0]
imul ecx, ebx
push eax
mov eax, dword [esp + 0x14]
lea edx, [ecx + ecx + 4]
mov ecx, dword [edi + 0x58c]
and eax, 0xffff
push edx
mov edx, dword [edi + 0x4dc]
push eax
push ecx
push edx
mov ecx, edi
call fcn.00413250
test al, al
je 0x414333
mov eax, dword [edi + 0x58c]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
lea ecx, [eax + ebp]
cmp eax, ecx
mov dword [esp + 0x30], ecx
jge 0x41432f
mov ebp, dword [esp + 0x90]
lea eax, [ebx + ebp]
mov dword [esp + 0x2c], eax
cmp ebp, eax
jge 0x414572
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x4c]
and edx, 0xff
and ecx, 0xff
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x50]
and edx, 0xff
and eax, 0xffff
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x54]
and ebx, 0xffff
and edx, 0xffff
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x28], edx
jmp 0x4144c3
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x18]
mov si, word [edx]
and esi, 0xffff
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x20]
and edx, eax
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv dword [esp + 0x98]
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x24]
shr esi, cl
mov ecx, dword [esp + 0x28]
and edx, ebx
and esi, ecx
and eax, 0xff
or ah, 2
shl eax, 8
mov dword [esp + 0x60], eax
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv ebx
mov edx, dword [esp + 0x60]
and eax, 0xff
or edx, eax
mov eax, esi
shl eax, 8
shl edx, 8
sub eax, esi
mov dword [esp + 0x60], edx
cdq
idiv ecx
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x3c]
mov edx, dword [edi + 0x3d38]
and eax, 0xff
or ecx, eax
push ecx
push esi
push ebp
push edx
call dword [sym.imp.GDI32.dll_SetPixelV]
mov eax, dword [esp + 0x18]
add eax, 2
inc ebp
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
cmp ebp, eax
jl 0x4144b8
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x90]
inc esi
cmp esi, ecx
mov dword [esp + 0x3c], esi
jl 0x41445c
jmp 0x41432f
test al, 0x40
je 0x41461f
lea eax, [esp + 0x10]
push 2
push eax
mov ecx, edi
call fcn.0040bbc0
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov cl, ah
mov edx, dword [edi + 0x4dc]
mov ch, al
mov eax, ecx
mov ecx, edi
mov dword [esp + 0x10], eax
and eax, 0xffff
push eax
push edx
call fcn.0040bbc0
mov ecx, ebp
lea eax, [edi + 0x608]
imul ecx, ebx
push eax
mov eax, dword [esp + 0x14]
lea edx, [ecx + ecx + 0x18]
mov ecx, dword [edi + 0x58c]
and eax, 0xffff
push edx
mov edx, dword [edi + 0x4dc]
push eax
push ecx
push edx
mov ecx, edi
call fcn.00413250
test al, al
je 0x414333
mov ecx, dword [esp + 0x58]
mov eax, dword [edi + 0x58c]
mov edx, dword [esp + 0x90]
and ecx, 0xff
push eax
push ecx
push ebp
push ebx
push esi
push edx
mov ecx, edi
call fcn.00414a00
jmp 0x414333
and eax, 0xff
mov ecx, edi
push eax
mov eax, dword [esp + 0x94]
push ebp
push ebx
push esi
push eax
call fcn.00414640
jmp 0x414333