Function at 0x412b60
Capabilities:
Enumerate pe sections

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x43b918
push eax
mov dword fs:[0], esp
sub esp, 0x54
xor eax, eax
lea edx, [esp + 0x38]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x74]
mov ebp, ecx
xor ecx, ecx
push 4
mov ax, word [edi + 6]
mov cx, word [edi + 4]
imul eax, ecx
mov ebx, dword [ebp + 0x478c]
push edx
mov ecx, ebp
imul ebx, eax
call fcn.0040bbc0
mov eax, dword [esp + 0x48]
mov esi, eax
mov ecx, eax
mov edx, eax
and esi, 0xff0000
shr ecx, 0x10
and edx, 0xff00
or esi, ecx
shl eax, 0x10
or edx, eax
mov ecx, ebp
shr esi, 8
shl edx, 8
or esi, edx
push esi
call fcn.0040bed0
mov eax, dword [ebp + 0x4dc]
push esi
push eax
mov ecx, ebp
call fcn.0040bbc0
push ebx
mov ecx, ebp
call fcn.0040bfa0
mov ecx, dword [ebp + 0x4dc]
mov edx, dword [ebp + 0x58c]
lea eax, [ebp + 0x598]
mov dword [ebp + 0x5a8], ebx
xor ebx, ebx
mov dword [ebp + 0x59c], esi
mov dword [eax], ecx
mov cl, byte [ebp + 0x594]
cmp cl, bl
mov dword [ebp + 0x5a4], edx
mov dword [ebp + 0x5c4], ebx
jne 0x412c79
push 0x38
push str.1.1.4
push eax
mov dword [ebp + 0x5a0], ebx
mov dword [ebp + 0x5ac], ebx
mov dword [ebp + 0x5b8], ebx
mov dword [ebp + 0x5bc], ebx
mov dword [ebp + 0x5c0], ebx
call fcn.004225b0
add esp, 0xc
cmp eax, ebx
je 0x412c72
push eax
push str.zlib_inflateInit_error:__d_n
push ebx
push 0x44a470
call fcn.00406360
add esp, 0x10
jmp 0x4131e0
mov byte [ebp + 0x594], 1
lea eax, [ebp + 0x598]
push 2
push eax
call fcn.004225d0
add esp, 8
cmp eax, ebx
jge 0x412ca7
push eax
push str.zlib_inflate_error:__d_n
push ebx
push 0x44a470
call fcn.00406360
add esp, 0x10
jmp 0x4131e0
mov al, byte [ebp + 0x473a]
mov cx, word [ebp + 0x4734]
mov dl, byte [ebp + 0x473b]
mov byte [esp + 0x38], al
mov ax, word [ebp + 0x4736]
mov word [esp + 0x3c], cx
mov cl, byte [ebp + 0x473c]
mov word [esp + 0x34], ax
mov byte [esp + 0x30], dl
mov dx, word [ebp + 0x4738]
lea eax, [ebp + 0x4fc]
mov byte [esp + 0x28], cl
push eax
lea ecx, [esp + 0x48]
mov word [esp + 0x30], dx
call fcn.00408db0
mov ecx, dword [ebp + 0x3d34]
mov edx, dword [ebp + 0x3d38]
push ecx
push edx
lea ecx, [esp + 0x64]
mov dword [esp + 0x74], ebx
call fcn.00408e20
mov eax, dword [ebp + 0x3d3c]
mov ecx, dword [ebp + 0x3d38]
push eax
push ecx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x74], 1
call fcn.00408e60
xor eax, eax
mov byte [esp + 0x6c], 2
mov al, byte [ebp + 0x4730]
lea ecx, [eax - 8]
cmp ecx, 0x18
ja case.0x412d51.11
xor edx, edx
mov dl, byte [ecx + 0x413208]
jmp dword [edx*4 + 0x4131f8]
mov eax, dword [ebp + 0x58c]
xor ecx, ecx
mov cx, word [edi + 6]
mov dword [esp + 0x20], eax
xor eax, eax
mov ax, word [edi + 2]
add ecx, eax
mov dword [esp + 0x24], eax
cmp eax, ecx
jge 0x4131b4
xor ecx, ecx
xor edx, edx
mov cx, word [edi]
mov dx, word [edi + 4]
add edx, ecx
mov dword [esp + 0x40], ecx
cmp ecx, edx
jge 0x412eab
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
and edx, 0xff
and ecx, 0xff
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x38]
and edx, 0xff
and eax, 0xffff
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
and ebx, 0xffff
and edx, 0xffff
mov dword [esp + 0x10], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x1c], edx
jmp 0x412dee
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x20]
mov dl, byte [edx]
mov byte [esp + 0x4c], dl
mov esi, dword [esp + 0x4c]
and esi, 0xff
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x14]
and edx, eax
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv dword [esp + 0x74]
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x18]
shr esi, cl
mov ecx, dword [esp + 0x1c]
and edx, ebx
and esi, ecx
and eax, 0xff
or ah, 2
shl eax, 8
mov dword [esp + 0x50], eax
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv ebx
mov edx, dword [esp + 0x50]
and eax, 0xff
or edx, eax
mov eax, esi
shl eax, 8
shl edx, 8
sub eax, esi
mov dword [esp + 0x50], edx
cdq
idiv ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x40]
and eax, 0xff
or ecx, eax
mov eax, dword [ebp + 0x3d38]
push ecx
push edx
push esi
push eax
call dword [sym.imp.GDI32.dll_SetPixelV]
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov cx, word [edi]
inc edx
mov dword [esp + 0x20], edx
xor edx, edx
mov dx, word [edi + 4]
inc esi
add ecx, edx
mov dword [esp + 0x40], esi
cmp esi, ecx
jl 0x412de6
mov eax, dword [esp + 0x24]
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov cx, word [edi + 6]
mov dx, word [edi + 2]
inc eax
add ecx, edx
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x412d7c
jmp 0x4131b4
mov eax, dword [ebp + 0x58c]
xor ecx, ecx
mov cx, word [edi + 6]
mov dword [esp + 0x24], eax
xor eax, eax
mov ax, word [edi + 2]
add ecx, eax
mov dword [esp + 0x20], eax
cmp eax, ecx
jge 0x4131b4
xor ecx, ecx
xor edx, edx
mov cx, word [edi]
mov dx, word [edi + 4]
add edx, ecx
mov dword [esp + 0x40], ecx
cmp ecx, edx
jge 0x413019
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
and edx, 0xff
and ecx, 0xff
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x38]
and edx, 0xff
and eax, 0xffff
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
and ebx, 0xffff
and edx, 0xffff
mov dword [esp + 0x10], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x1c], edx
jmp 0x412f61
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x24]
mov si, word [edx]
and esi, 0xffff
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x14]
and edx, eax
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv dword [esp + 0x74]
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x18]
shr esi, cl
mov ecx, dword [esp + 0x1c]
and edx, ebx
and esi, ecx
and eax, 0xff
or ah, 2
shl eax, 8
mov dword [esp + 0x50], eax
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv ebx
mov edx, dword [esp + 0x50]
and eax, 0xff
or edx, eax
mov eax, esi
shl eax, 8
shl edx, 8
sub eax, esi
mov dword [esp + 0x50], edx
cdq
idiv ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x40]
and eax, 0xff
or ecx, eax
mov eax, dword [ebp + 0x3d38]
push ecx
push edx
push esi
push eax
call dword [sym.imp.GDI32.dll_SetPixelV]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov cx, word [edi]
add edx, 2
mov dword [esp + 0x24], edx
xor edx, edx
mov dx, word [edi + 4]
inc esi
add ecx, edx
mov dword [esp + 0x40], esi
cmp esi, ecx
jl 0x412f59
mov eax, dword [esp + 0x20]
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov cx, word [edi + 6]
mov dx, word [edi + 2]
inc eax
add ecx, edx
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x412eef
jmp 0x4131b4
mov eax, dword [ebp + 0x58c]
xor ecx, ecx
mov cx, word [edi + 6]
mov dword [esp + 0x24], eax
xor eax, eax
mov ax, word [edi + 2]
add ecx, eax
mov dword [esp + 0x20], eax
cmp eax, ecx
jge 0x4131b4
xor ecx, ecx
xor edx, edx
mov cx, word [edi]
mov dx, word [edi + 4]
add edx, ecx
mov dword [esp + 0x40], ecx
cmp ecx, edx
jge 0x413183
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
and edx, 0xff
and ecx, 0xff
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x38]
and edx, 0xff
and eax, 0xffff
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
and ebx, 0xffff
and edx, 0xffff
mov dword [esp + 0x10], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x1c], edx
jmp 0x4130cf
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x24]
mov esi, dword [edx]
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x14]
and edx, eax
mov eax, edx
shl eax, 8
sub eax, edx
xor edx, edx
div dword [esp + 0x74]
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x18]
shr esi, cl
mov ecx, dword [esp + 0x1c]
and edx, ebx
and esi, ecx
and eax, 0xff
or ah, 2
shl eax, 8
mov dword [esp + 0x50], eax
mov eax, edx
shl eax, 8
sub eax, edx
xor edx, edx
div ebx
mov edx, dword [esp + 0x50]
and eax, 0xff
or edx, eax
mov eax, esi
shl edx, 8
shl eax, 8
mov dword [esp + 0x50], edx
sub eax, esi
xor edx, edx
mov esi, dword [esp + 0x40]
div ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x20]
and eax, 0xff
or ecx, eax
mov eax, dword [ebp + 0x3d38]
push ecx
push edx
push esi
push eax
call dword [sym.imp.GDI32.dll_SetPixelV]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov cx, word [edi]
add edx, 4
mov dword [esp + 0x24], edx
xor edx, edx
mov dx, word [edi + 4]
inc esi
add ecx, edx
mov dword [esp + 0x40], esi
cmp esi, ecx
jl 0x4130c7
mov eax, dword [esp + 0x20]
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov cx, word [edi + 6]
mov dx, word [edi + 2]
inc eax
add ecx, edx
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x41305d
jmp 0x4131b4
push eax
push str.Invalid_number_of_bits_per_pixel:__d_n
push ebx
push 0x44a470
call fcn.00406360
add esp, 0x10
lea ecx, [esp + 0x54]
mov byte [esp + 0x6c], 1
call fcn.00408e90
lea ecx, [esp + 0x5c]
mov byte [esp + 0x6c], bl
call fcn.00408e40
lea ecx, [esp + 0x44]
mov dword [esp + 0x6c], 0xffffffff
call fcn.00408dd0
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x60
ret 4