Function at 0x445240
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
cmp word [ebx + 2], 0
mov dword [esp + 0x1c], ecx
je 0x445638
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x2c]
call fcn.00444fa0
add esp, 4
cmp eax, 0xffffff88
ja 0x4455fb
movzx edi, word [ebx]
or esi, 0xffffffff
mov eax, dword [esp + 0x2c]
sub esi, edi
mov ebx, dword [esp + 0x28]
mov ecx, eax
and ecx, 0x1f
and esi, 0x1f
shl ebx, cl
add eax, edi
mov ecx, esi
shr ebx, 1
shr ebx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], eax
call fcn.004415f0
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov edx, dword [esp + 0x28]
and ecx, 0x1f
shl edx, cl
add eax, edi
shr edx, 1
mov ecx, esi
shr edx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], eax
call fcn.004415f0
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
nop dword [eax]
nop dword [eax + eax]
mov esi, dword [esp + 0x30]
cmp edi, 0x20
ja 0x4454a5
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 4]
cmp esi, eax
jb 0x445322
mov eax, edi
shr eax, 3
sub esi, eax
and edi, 7
mov dword [esp + 0x30], esi
mov ebx, dword [esi]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x28], ebx
jmp 0x44536b
cmp esi, ecx
je 0x4454a5
mov edx, edi
mov dword [esp + 0x20], 0
shr edx, 3
mov eax, esi
sub eax, edx
cmp eax, ecx
jae 0x44534b
mov edx, esi
mov dword [esp + 0x20], 1
sub edx, ecx
imul eax, edx, 0xfffffff8
sub esi, edx
mov dword [esp + 0x30], esi
mov ebx, dword [esi]
add edi, eax
mov dword [esp + 0xc], ebx
cmp dword [esp + 0x20], 0
mov dword [esp + 0x28], ebx
jne 0x4454a5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add eax, 0xfc
cmp ecx, eax
jae 0x44549f
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + eax*4 + 4]
mov eax, edx
shr eax, 0x18
lea esi, [eax + edi]
neg eax
and eax, 0x1f
and edi, 0x1f
mov ecx, edi
mov edi, dword [esp + 0x14]
shl ebx, cl
mov ecx, eax
shr ebx, cl
mov ecx, dword [esp + 0x1c]
movzx eax, dx
add ebx, eax
shr edx, 0x10
mov eax, dword [ebp + 0x10]
mov byte [edi], dl
mov dword [esp + 0x10], ebx
mov ebx, dword [eax + ecx*4 + 4]
mov edx, ebx
shr edx, 0x18
lea eax, [edx + esi]
and esi, 0x1f
mov dword [esp + 0x2c], eax
neg edx
mov eax, dword [esp + 0xc]
mov ecx, esi
shl eax, cl
and edx, 0x1f
mov ecx, edx
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], eax
movzx eax, bx
add dword [esp + 0x1c], eax
shr ebx, 0x10
mov byte [edi + 1], bl
call fcn.004415f0
test eax, eax
jg 0x445486
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebx
mov edx, dword [ecx + eax*4 + 4]
mov eax, edx
mov ecx, dword [esp + 0x2c]
shr eax, 0x18
lea esi, [eax + ecx]
neg eax
and eax, 0x1f
and ecx, 0x1f
shl dword [esp + 0x10], cl
mov ecx, eax
shr dword [esp + 0x10], cl
mov ecx, dword [esp + 0x1c]
movzx eax, dx
add dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
shr edx, 0x10
mov byte [edi + 2], dl
mov edx, dword [eax + ecx*4 + 4]
mov eax, edx
shr eax, 0x18
lea edi, [eax + esi]
neg eax
and esi, 0x1f
and eax, 0x1f
mov ecx, esi
shl ebx, cl
mov ecx, eax
movzx eax, dx
shr ebx, cl
add ebx, eax
shr edx, 0x10
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
mov byte [eax + 3], dl
add eax, 4
mov dword [esp + 0x14], eax
jmp 0x4452f0
mov eax, dword [esp + 0x28]
add edi, 2
mov esi, dword [esp + 0x30]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
jmp 0x4454a9
mov eax, dword [esp + 0xc]
jmp 0x4454ad
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add edx, 0xfd
cmp ecx, edx
ja 0x4455f6
nop
mov ecx, dword [esp + 0x10]
mov ebx, dword [ebp + 0x10]
mov ebx, dword [ebx + ecx*4 + 4]
mov ecx, edi
and ecx, 0x1f
mov edx, ebx
shl eax, cl
shr edx, 0x18
mov ecx, edx
add edi, edx
mov edx, dword [esp + 0x14]
neg ecx
and ecx, 0x1f
shr eax, cl
movzx ecx, bx
shr ebx, 0x10
add ecx, eax
mov byte [edx], bl
inc edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
cmp edi, 0x20
ja 0x44561d
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 4]
cmp esi, eax
jb 0x44551f
mov eax, edi
shr eax, 3
sub esi, eax
and edi, 7
mov eax, dword [esi]
mov dword [esp + 0xc], eax
jmp 0x44554b
cmp esi, ecx
je 0x445547
mov ebx, edi
mov eax, esi
shr ebx, 3
sub eax, ebx
cmp eax, ecx
jae 0x445534
mov ebx, esi
sub ebx, ecx
sub esi, ebx
lea eax, [ebx*8]
sub edi, eax
mov eax, dword [esi]
mov dword [esp + 0xc], eax
jmp 0x44554b
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
add ecx, 0xfd
cmp edx, ecx
ja 0x4455f6
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + ecx*4 + 4]
mov ecx, edi
and ecx, 0x1f
mov edx, ebx
shl eax, cl
shr edx, 0x18
mov ecx, edx
add edi, edx
mov edx, dword [esp + 0x14]
neg ecx
and ecx, 0x1f
shr eax, cl
movzx ecx, bx
shr ebx, 0x10
add ecx, eax
mov byte [edx], bl
inc edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
cmp edi, 0x20
ja 0x445602
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 4]
cmp esi, eax
jb 0x4455b8
mov eax, edi
shr eax, 3
sub esi, eax
and edi, 7
mov eax, dword [esi]
mov dword [esp + 0xc], eax
jmp 0x4455e4
cmp esi, ecx
je 0x4455e0
mov ebx, edi
mov eax, esi
shr ebx, 3
sub eax, ebx
cmp eax, ecx
jae 0x4455cd
mov ebx, esi
sub ebx, ecx
sub esi, ebx
lea eax, [ebx*8]
sub edi, eax
mov eax, dword [esi]
mov dword [esp + 0xc], eax
jmp 0x4455e4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
add ecx, 0xfd
cmp edx, ecx
jbe 0x4454c0
mov eax, 0xffffffba
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx + eax*4 + 6]
mov byte [edx], al
sub edx, dword [esp + 0x18]
lea eax, [edx + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x1c]
mov al, byte [eax + ecx*4 + 6]
mov byte [edx], al
sub edx, dword [esp + 0x18]
lea eax, [edx + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x2c]
call fcn.00444fa0
add esp, 4
cmp eax, 0xffffff88
ja 0x4455fb
movzx edi, word [ebx]
or esi, 0xffffffff
mov eax, dword [esp + 0x2c]
sub esi, edi
mov ebx, dword [esp + 0x28]
mov ecx, eax
and ecx, 0x1f
and esi, 0x1f
shl ebx, cl
add eax, edi
mov ecx, esi
shr ebx, 1
shr ebx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], eax
call fcn.004415f0
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x28]
add eax, 4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
mov ecx, eax
and ecx, 0x1f
add eax, edi
shl edx, cl
mov ecx, esi
shr edx, 1
shr edx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], eax
call fcn.004415f0
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
nop
mov esi, dword [esp + 0x30]
cmp edi, 0x20
ja 0x44587f
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 4]
cmp esi, eax
jb 0x4456f2
mov eax, edi
shr eax, 3
sub esi, eax
and edi, 7
mov dword [esp + 0x30], esi
mov ebx, dword [esi]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x28], ebx
jmp 0x44573b
cmp esi, ecx
je 0x44587f
mov edx, edi
mov dword [esp + 0x24], 0
shr edx, 3
mov eax, esi
sub eax, edx
cmp eax, ecx
jae 0x44571b
mov edx, esi
mov dword [esp + 0x24], 1
sub edx, ecx
imul eax, edx, 0xfffffff8
sub esi, edx
mov dword [esp + 0x30], esi
mov ebx, dword [esi]
add edi, eax
mov dword [esp + 0xc], ebx
cmp dword [esp + 0x24], 0
mov dword [esp + 0x28], ebx
jne 0x44587f
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add eax, 0xfc
cmp ecx, eax
jae 0x445879
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov edx, dword [edx + eax*4]
mov eax, edx
shr eax, 0x18
lea esi, [edi + eax]
not eax
and eax, 0x1f
and edi, 0x1f
mov ecx, edi
mov edi, dword [esp + 0x10]
shl ebx, cl
mov ecx, eax
movzx eax, dx
shr edx, 0x10
shr ebx, 1
shr ebx, cl
add ebx, eax
mov byte [edi], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], ebx
mov ebx, dword [eax + edx*4]
mov edx, ebx
shr edx, 0x18
lea eax, [edx + esi]
and esi, 0x1f
mov dword [esp + 0x2c], eax
mov ecx, esi
mov eax, dword [esp + 0xc]
not edx
shl eax, cl
and edx, 0x1f
shr eax, 1
mov ecx, edx
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], eax
movzx eax, bx
add dword [esp + 0x1c], eax
shr ebx, 0x10
mov byte [edi + 1], bl
call fcn.004415f0
test eax, eax
jg 0x445860
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
mov edx, dword [edx + eax*4]
mov eax, edx
shr eax, 0x18
mov dword [esp + 0xc], ebx
lea esi, [ecx + eax]
not eax
and eax, 0x1f
and ecx, 0x1f
shl dword [esp + 0x14], cl
mov ecx, eax
shr dword [esp + 0x14], 1
shr dword [esp + 0x14], cl
movzx eax, dx
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
shr edx, 0x10
mov byte [edi + 2], dl
mov edx, dword [esp + 0x1c]
mov edx, dword [eax + edx*4]
mov eax, edx
shr eax, 0x18
lea edi, [eax + esi]
and esi, 0x1f
not eax
mov ecx, esi
shl ebx, cl
and eax, 0x1f
mov ecx, eax
shr ebx, 1
movzx eax, dx
shr ebx, cl
add ebx, eax
shr edx, 0x10
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
mov byte [eax + 3], dl
add eax, 4
mov dword [esp + 0x10], eax
jmp 0x4456c0
mov eax, dword [esp + 0x28]
add edi, 2
mov esi, dword [esp + 0x30]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
jmp 0x445883
mov eax, dword [esp + 0xc]
jmp 0x445887
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
add edx, 0xfd
cmp ecx, edx
ja 0x4455f6
nop dword [eax]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov ebx, dword [ebx + ecx*4]
mov ecx, edi
and ecx, 0x1f
mov edx, ebx
shl eax, cl
or ecx, 0xffffffff
shr edx, 0x18
sub ecx, edx
shr eax, 1
and ecx, 0x1f
add edi, edx
shr eax, cl
movzx ecx, bx
add ecx, eax
shr ebx, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
mov byte [ecx], bl
inc ecx
mov dword [esp + 0x10], ecx
cmp edi, 0x20
ja 0x445a08
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 4]
cmp esi, eax
jb 0x445902
mov eax, edi
shr eax, 3
sub esi, eax
and edi, 7
mov eax, dword [esi]
mov dword [esp + 0xc], eax
jmp 0x44592e
cmp esi, ecx
je 0x44592a
mov edx, edi
mov eax, esi
shr edx, 3
sub eax, edx
cmp eax, ecx
jae 0x445917
mov edx, esi
sub edx, ecx
sub esi, edx
lea eax, [edx*8]
sub edi, eax
mov eax, dword [esi]
mov dword [esp + 0xc], eax
jmp 0x44592e
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
add edx, 0xfd
cmp dword [esp + 0x10], edx
ja 0x4455f6
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + edx*4]
mov ecx, edi
and ecx, 0x1f
mov edx, ebx
shl eax, cl
or ecx, 0xffffffff
shr edx, 0x18
sub ecx, edx
shr eax, 1
and ecx, 0x1f
add edi, edx
shr eax, cl
movzx ecx, bx
add ecx, eax
shr ebx, 0x10
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
mov byte [ecx], bl
inc ecx
mov dword [esp + 0x10], ecx
cmp edi, 0x20
ja 0x4459ec
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 4]
cmp esi, eax
jb 0x4459a0
mov eax, edi
shr eax, 3
sub esi, eax
and edi, 7
mov eax, dword [esi]
mov dword [esp + 0xc], eax
jmp 0x4459cc
cmp esi, ecx
je 0x4459c8
mov edx, edi
mov eax, esi
shr edx, 3
sub eax, edx
cmp eax, ecx
jae 0x4459b5
mov edx, esi
sub edx, ecx
sub esi, edx
lea eax, [edx*8]
sub edi, eax
mov eax, dword [esi]
mov dword [esp + 0xc], eax
jmp 0x4459cc
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
add edx, 0xfd
cmp dword [esp + 0x10], edx
jbe 0x4458a0
mov eax, 0xffffffba
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov al, byte [edx + eax*4 + 2]
mov byte [ecx], al
sub ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov al, byte [eax + edx*4 + 2]
mov byte [ecx], al
sub ecx, dword [esp + 0xc]
lea eax, [ecx + 1]
mov esp, ebp
pop ebp
ret