Function at 0x421760
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x48
push esi
push edi
mov edi, ecx
mov dword [esp + 0x1c], edi
mov eax, dword [edi + 0x460]
mov esi, dword [edi + 0x1c]
lea ecx, [eax*8]
sub ecx, eax
test byte [edi + 4], 2
mov eax, dword [edi + 0x48]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
jne 0x4217d3
movzx esi, word [eax + ecx*4 + 4]
movzx eax, word [eax + ecx*4 + 6]
mov edx, esi
push ecx
push 0x2e
sub esp, 0xc
mov ecx, edi
push eax
call fcn.00421700
mov ecx, dword [esp + 0x28]
lea edx, [esi + 0x6d]
mov eax, dword [esp + 0x2c]
add esp, 0x14
movzx eax, word [ecx + eax*4 + 6]
mov ecx, edi
push 0x58
sub esp, 0xc
push eax
call fcn.00421700
add esp, 0x18
jmp 0x421806
movzx edx, word [eax + ecx*4 + 6]
movzx eax, word [eax + ecx*4 + 4]
imul edx, esi
add edx, eax
mov eax, dword [edi + 0x14]
lea ecx, [edx + esi]
mov byte [ecx + eax + 1], 0xff
lea ecx, [edx + esi]
mov eax, dword [edi + 0x14]
mov byte [ecx + eax], 0xff
mov eax, dword [edi + 0x14]
mov byte [edx + eax + 1], 0xff
mov eax, dword [edi + 0x14]
mov byte [edx + eax], 0xff
test byte [edi + 4], 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
movzx eax, word [edx + ecx*4 + 4]
movd xmm1, eax
movzx eax, word [edx + ecx*4 + 6]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
addss xmm1, dword [0x4978c8]
cvtdq2ps xmm0, xmm0
mulss xmm1, dword [edi + 0x24]
addss xmm0, dword [0x4978c8]
movss dword [edi + 0x2c], xmm1
mulss xmm0, dword [edi + 0x28]
movss dword [edi + 0x30], xmm0
jne 0x4219dc
mov eax, dword [edi + 0x464]
mov edx, dword [edi + 0x48]
mov dword [esp + 0x14], edx
lea esi, [eax*8]
sub esi, eax
xor eax, eax
add edi, 0x58
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], edi
nop dword [eax + eax]
movzx edi, word [edx + esi*4]
movzx esi, word [edx + esi*4 + 6]
mov ecx, edi
mov edx, dword [esp + 0x1c]
sub ecx, eax
shr ecx, 1
add esi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
imul esi, dword [edx + 0x1c]
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + eax*4 + 4]
mov ecx, dword [esp + 0x10]
add esi, eax
add esi, dword [edx + 0x14]
push ecx
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x18]
add esp, 0xc
add esi, dword [esp + 0x10]
push ecx
push 0xff
push esi
call sub.VCRUNTIME140.dll_memset
sub edi, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0xc]
sub edi, eax
add eax, esi
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edi, dword [esp + 0x20]
add esp, 0xc
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
movzx eax, word [edi + esi*4 + 6]
add ecx, eax
movzx edx, word [edi + esi*4 + 4]
mov edi, dword [esp + 0x1c]
add edx, dword [esp + 0x10]
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x497e80]
lea eax, [edx - 1]
cvtpd2ps xmm2, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
mulss xmm2, dword [edi + 0x28]
addsd xmm0, qword [ecx*8 + 0x497e80]
mov ecx, dword [esp + 0x20]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [edi + 0x28]
addss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm2, dword [0x4978c8]
addsd xmm0, qword [eax*8 + 0x497e80]
mov eax, dword [esp + 0xc]
inc eax
movss dword [esp + 0x44], xmm2
add eax, edx
movss dword [esp + 0x4c], xmm2
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [edi + 0x24]
movss dword [esp + 0x40], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x497e80]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [edi + 0x24]
movss dword [esp + 0x48], xmm0
movups xmm0, xmmword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
inc eax
movups xmmword [ecx], xmm0
add ecx, 0x10
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], ecx
cmp eax, 0x40
jb 0x421880
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [edi + 0x40], ecx
jle 0x421bfd
xor eax, eax
mov dword [esp + 0x10], eax
mov edx, dword [edi + 0x48]
add edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [edx + 0x18]
mov dword [esp + 0x14], eax
test eax, eax
je 0x421be4
mov eax, dword [edx + 8]
mov dword [esp + 0xc], eax
test eax, eax
je 0x421be4
movzx ecx, word [edx + 6]
movzx eax, word [edx + 4]
movzx esi, word [edx]
movzx edx, word [edx + 2]
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
movd xmm0, eax
add eax, esi
mulss xmm2, dword [edi + 0x28]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x30], xmm2
mulss xmm0, dword [edi + 0x24]
movd xmm2, eax
lea eax, [edx + ecx]
cvtdq2ps xmm2, xmm2
movss dword [esp + 0x2c], xmm0
mulss xmm2, dword [edi + 0x24]
movd xmm1, eax
mov eax, dword [esp + 0x20]
movd xmm0, esi
mov esi, dword [esp + 0x14]
cvtdq2ps xmm0, xmm0
lea ecx, [esi + 0x20]
movss dword [esp + 0x34], xmm2
movss xmm2, dword [eax + 0x10]
addss xmm0, xmm2
movss dword [esp + 0x28], xmm2
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x24], xmm0
mulss xmm1, dword [edi + 0x28]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x38], xmm1
movss xmm1, dword [eax + 0x14]
addss xmm0, xmm1
movss dword [esp + 0x1c], xmm1
movss dword [esp + 0x20], xmm0
movss xmm0, dword [eax + 0xc]
mov eax, dword [esi + 0x20]
inc eax
movss dword [esp + 0x3c], xmm0
push eax
call fcn.00423d30
mov eax, dword [esi + 0x20]
mov esi, dword [esi + 0x28]
movss xmm2, dword [esp + 0x24]
movss xmm3, dword [esp + 0x28]
movss xmm0, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov ecx, dword [esi + edx*8 - 0x28]
mov eax, dword [esp + 0xc]
and ecx, 0x80000000
movss xmm1, dword [esp + 0x1c]
movzx eax, ax
or ecx, eax
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x421b19
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x421b19
mov eax, 0x80000000
jmp 0x421b1b
xor eax, eax
movss dword [esi + edx*8 - 0x14], xmm0
and ecx, 0x7fffffff
movss xmm0, dword [esp + 0x2c]
or ecx, eax
movss dword [esi + edx*8 - 0x10], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esi + edx*8 - 0xc], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esi + edx*8 - 8], xmm0
movss xmm0, dword [esp + 0x38]
mov dword [esi + edx*8 - 0x28], ecx
mov ecx, dword [esp + 0x14]
movss dword [esi + edx*8 - 0x1c], xmm1
movss dword [esi + edx*8 - 4], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [esi + edx*8 - 0x18], xmm2
movss dword [esi + edx*8 - 0x24], xmm0
movss dword [esi + edx*8 - 0x20], xmm3
mov eax, dword [ecx + 0x30]
movd xmm2, dword [eax + 0x10]
mov byte [ecx + 0x3e], 1
movd xmm0, dword [eax + 0x1c]
movss xmm1, dword [esi + edx*8 - 8]
subss xmm1, dword [esi + edx*8 - 0x10]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm2, xmm2
mulss xmm1, xmm0
addss xmm2, dword [0x4978f4]
movd xmm0, dword [eax + 0x20]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm2
cvttss2si ecx, xmm1
movss xmm1, dword [esi + edx*8 - 4]
subss xmm1, dword [esi + edx*8 - 0xc]
mulss xmm1, xmm0
addss xmm1, xmm2
cvttss2si eax, xmm1
imul ecx, eax
mov eax, dword [esp + 0x14]
add dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
inc ecx
add eax, 0x1c
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
cmp ecx, dword [edi + 0x40]
jl 0x4219f1
mov eax, dword [edi + 0x34]
xor esi, esi
test eax, eax
jle 0x421c1f
mov eax, dword [edi + 0x3c]
mov ecx, dword [eax + esi*4]
cmp byte [ecx + 0x3e], 0
je 0x421c17
call fcn.004220d0
mov eax, dword [edi + 0x34]
inc esi
cmp esi, eax
jl 0x421c06
xor esi, esi
mov dword [esp + 0x1c], esi
test eax, eax
jle 0x421cbc
mov ecx, 0xffff
mov edx, 0x2026
nop word [eax + eax]
mov eax, dword [edi + 0x3c]
mov esi, dword [eax + esi*4]
cmp word [esi + 0x3c], cx
jne 0x421cae
mov dword [esp + 0x20], 0x852026
xor edx, edx
nop word [eax + eax]
movzx eax, word [esp + edx*2 + 0x20]
movzx ecx, ax
mov dword [esp + 0x3c], eax
cmp ecx, dword [esi + 0x14]
jae 0x421c8f
mov eax, dword [esi + 0x1c]
movzx eax, word [eax + ecx*2]
mov ecx, 0xffff
cmp ax, cx
je 0x421c94
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x28]
lea eax, [eax + ecx*8]
test eax, eax
jne 0x421c9c
mov ecx, 0xffff
inc edx
cmp edx, 2
jl 0x421c60
jmp 0x421ca9
mov eax, dword [esp + 0x3c]
mov ecx, 0xffff
mov word [esi + 0x3c], ax
mov edx, 0x2026
mov esi, dword [esp + 0x1c]
inc esi
mov dword [esp + 0x1c], esi
cmp esi, dword [edi + 0x34]
jl 0x421c40
pop edi
pop esi
mov esp, ebp
pop ebp
ret