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

Disassembly:
push 0xffffffffffffffff
push 0x43b9a8
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 0x41c
call fcn.0040bed0
push 0x41c
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 0x4150b4
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 0x415073
mov eax, dword [esp + 0x94]
mov dword [esp + 0x34], eax
jmp 0x414ea5
mov eax, dword [esp + 0x34]
mov ebp, 0x10
cmp eax, ebp
mov ebx, ebp
jge 0x414eb2
mov ebx, eax
mov eax, dword [esp + 0x38]
cmp eax, 0x10
jge 0x414ebd
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 0x4150c8
mov edx, ebp
mov eax, dword [edi + 0x4dc]
imul edx, ebx
shl edx, 2
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 0x41503c
mov ebp, dword [esp + 0x90]
lea eax, [ebx + ebp]
mov dword [esp + 0x2c], eax
cmp ebp, eax
jge 0x41502f
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 0x414f84
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x18]
mov esi, dword [edx]
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x20]
and edx, eax
mov eax, edx
shl eax, 8
sub eax, edx
xor edx, edx
div 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
xor edx, edx
div ebx
mov edx, dword [esp + 0x60]
and eax, 0xff
or edx, eax
mov eax, esi
shl edx, 8
shl eax, 8
mov dword [esp + 0x60], edx
sub eax, esi
xor edx, edx
mov esi, dword [esp + 0x3c]
div ecx
mov ecx, dword [esp + 0x60]
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, 4
inc ebp
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
cmp ebp, eax
jl 0x414f79
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x90]
inc esi
cmp esi, ecx
mov dword [esp + 0x3c], esi
jl 0x414f1d
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 0x414ea1
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 0x414e30
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 0x415290
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*4 + 8]
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 0x415040
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 0x41503c
mov ebp, dword [esp + 0x90]
lea eax, [ebx + ebp]
mov dword [esp + 0x2c], eax
cmp ebp, eax
jge 0x41527e
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 0x4151d3
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x18]
mov esi, dword [edx]
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x20]
and edx, eax
mov eax, edx
shl eax, 8
sub eax, edx
xor edx, edx
div 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
xor edx, edx
div ebx
mov edx, dword [esp + 0x60]
and eax, 0xff
or edx, eax
mov eax, esi
shl edx, 8
shl eax, 8
mov dword [esp + 0x60], edx
sub eax, esi
xor edx, edx
mov esi, dword [esp + 0x3c]
div ecx
mov ecx, dword [esp + 0x60]
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, 4
inc ebp
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
cmp ebp, eax
jl 0x4151c8
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x90]
inc esi
cmp esi, ecx
mov dword [esp + 0x3c], esi
jl 0x41516c
jmp 0x41503c
test al, 0x40
je 0x41532e
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*4 + 0x1c]
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 0x415040
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.00415700
jmp 0x415040
and eax, 0xff
mov ecx, edi
push eax
mov eax, dword [esp + 0x94]
push ebp
push ebx
push esi
push eax
call fcn.00415350
jmp 0x415040